Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试制作2d数组程序来存储汽车对象列表_Java_Arrays - Fatal编程技术网

Java 尝试制作2d数组程序来存储汽车对象列表

Java 尝试制作2d数组程序来存储汽车对象列表,java,arrays,Java,Arrays,在一个小项目中苦苦挣扎,我开始学习Java。我的目标是创建一个程序来存储汽车对象列表。然后允许用户搜索特定的汽车,并输出所有汽车(如果存在)。车辆对象应包含车型名称、注册号、vin和颜色。以下是我到目前为止的情况: package carObjects; public class cars { public static int length; private String modelName; private String carColour; privat

在一个小项目中苦苦挣扎,我开始学习Java。我的目标是创建一个程序来存储汽车对象列表。然后允许用户搜索特定的汽车,并输出所有汽车(如果存在)。车辆对象应包含车型名称、注册号、vin和颜色。以下是我到目前为止的情况:

package carObjects;

public class cars {

    public static int length;
    private String modelName;
    private String carColour;
    private int regNumber;
    private int vin;

    public cars(String string, String string2, int i) {

    }

    public String toString() {
        return "Model Name: " + modelName + "Registration Number: " + regNumber
                + "Vin" + vin + "Car Colour:  " + carColour;
    }

    public String getLast() {
        return modelName;
    }
}

        for (int i = 0; i < cars.length; i++) {
            cars[i] = new cars("A", "B", 10);
        }

        for (cars p : cars) {
            System.out.println(p.getLast());

        }
    }
}

最好将你的练习分为两个不同的班:

class Car {

    private String modelName;
    private String carColour;
    private int regNumber;
    private int vin;

    public int getVin() {
        return vin;
    }

    public void setVin(int vin) {
        this.vin = vin;
    }

    // other getter/setter

    @Override
    public String toString() {
        return "Car: " + getVin();
    }

    @Override
    public int hashCode() {
        return vin;
    }

    @Override
    public boolean equals(Object obj) {
        return (obj != null) 
            && (obj instanceof Car) 
            && ((Car) obj).getVin() == this.getVin();
    }
}
CarSet类具有以下搜索方法:

class CarList extends HashSet<Car> {

    public Car serarchByVin(int vin) {
        List<Car> list = new ArrayList<>(this);
        for (Car c : list) {
            if (c.getVin() == vin) {
                return c;
            }
        }
        return null;
    }

    public CarSet searchByModel(String model) {
        CarSet result = new CarSet();
        List<Car> list = new ArrayList<>(this);
        for (Car c : list) {
            if (c.getModelName()== model) {
                result.add(c);
            }
        }
        return result;
    }

    @Override
    public String toString() {
        String result = "carList: ";
        for (Car c : this) {
            result += c;
        }
        return result;
    }
}

以下是您需要做的一些事情:

由于您希望允许搜索,因此需要将访问器公开给希望用户搜索的属性。例如,如果希望允许用户按模型搜索,则需要公开模型属性。您似乎是通过getLast方法来实现这一点的,但是,名称令人困惑*

这个代码的问题是:对于int i=0;i.长度;i++{ 汽车[i]=新汽车a,B,10; } 它正在创建一系列相同的对象。您可以使用i的值来提供一些虚拟的、不断变化的值。这将允许您测试您的搜索是否确实有效

构造函数名称应该以大写开头,就像类名一样

carssString、string2、inti:请为变量提供有意义的名称。这将使您的代码更易于阅读

您需要分配通过构造函数获得的变量。目前,您的字段将不会初始化为您提供的内容

要创建二维数组,需要使用以下语法:Car[][]carArr=new Car[5][5]。这将创建car类型的5x5数组。要对其进行迭代,需要使用嵌套循环:

forint i=0;i
*使用getter和setter可以控制哪些对象属性被公开,以及用户如何与它们交互

你能更具体地说明你在做什么吗?你的二维阵列尺寸是多少?顺便说一句,你没有使用2D阵列。请改进这个问题,你想要什么还不清楚。请参阅以下内容以改进您的问题: