【问题标题】:Array of item in JavaJava中的项目数组
【发布时间】:2020-06-30 04:01:13
【问题描述】:

创建一个包含 Item 对象的数组,其中包含序列号、名称和 单价。

o 允许用户输入商品的序列号并打印商品的所有详细信息 如果Item在数组中,则表示没有找到该Item。

方法如下: 它也有一个对象类。

public static int binarySearchSerialNumber(Item[] a, int n){ 中间;

    int first = 0;
    int last = a.length - 1;

    while (first <= last){

        mid = (first + last)/2;
        if (a[mid].getSerialNumber() == n)
            return mid;


        if (a[mid].getSerialNumber() > n)
            last = mid - 1;
        else
            first = mid + 1;
    }

    return -1;
}

主要:我正在尝试回调该方法。 public static void main(String[] args) {

    Item [] Numbers = new Item[5];
    Numbers[0]= new Item(1234, "Saw", 153.75);
    Numbers[1]= new Item(9876, "Hammer", 47.50);
    Numbers[2]= new Item(6432, "Drill", 272.99);
    Numbers[3]= new Item(4682, "I-Beam Level", 240.00);
    Numbers[4]= new Item(2090, "Shovel", 75.00);

    //Allowing user to enter serial number
    Scanner s = new Scanner(System.in);
    System.out.println("Enter the Serial Number:");
    int serialN= s.nextInt();

    int sort= binarySearchSerialNumber(Numbers,serialN);
    System.out.println(sort);

有人可以告诉我该怎么做吗,我需要创建一个 if,否则?

【问题讨论】:

    标签: arrays class sorting arraylist binary


    【解决方案1】:

    你的方法binarySearchSerialNumber(Item[] a, int n)返回数组的索引,所以条件应该是如果找到数据即sort!=-1这意味着找到了对象,你会在你的sort变量中得到对象的索引,您可以使用.toString()输出结果

    int sort= binarySearchSerialNumber(Numbers,serialN);
    if(sort!=-1)
    System.out.println(Numbers[sort].toString());
    

    【讨论】:

    • 我执行了它.. 但我得到一个奇怪的输出 --> Item@7d417077
    • 您必须在 Numbers 类中创建您的 toString() 方法。为此,您必须右键单击 Numbers 类,然后转到 Source -> Generate toString()
    • 我的老师被指示不要编辑 Numbers 课程。
    • 公共类项目 { 私有 int 序列号;私有字符串名称;私人双单价; public Item(int sn, String n, double p) { serialNumber = sn;名称 = n;单位价格 = p; } public int getSerialNumber(){ 返回序列号; } public String getName(){ 返回名称; } public double getUnitPrice(){ return unitPrice; } public void printDetails(){ System.out.print("NAME:" + name); System.out.print(" || 序列号:" + 序列号); System.out.println(" || 单价:$" + unitPrice); } }
    • 基本上 Item@7d417077 是你的对象的地址,为了打印它的内容,你必须使用 toString() 方法,如果你不能编辑你的类,你可以像 System.out.println(Numbers [排序].getName() + 数字[排序].getUnitPrice());您要打印对象的尽可能多的属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多