Java 尝试制作2d数组程序来存储汽车对象列表
在一个小项目中苦苦挣扎,我开始学习Java。我的目标是创建一个程序来存储汽车对象列表。然后允许用户搜索特定的汽车,并输出所有汽车(如果存在)。车辆对象应包含车型名称、注册号、vin和颜色。以下是我到目前为止的情况:Java 尝试制作2d数组程序来存储汽车对象列表,java,arrays,Java,Arrays,在一个小项目中苦苦挣扎,我开始学习Java。我的目标是创建一个程序来存储汽车对象列表。然后允许用户搜索特定的汽车,并输出所有汽车(如果存在)。车辆对象应包含车型名称、注册号、vin和颜色。以下是我到目前为止的情况: package carObjects; public class cars { public static int length; private String modelName; private String carColour; privat
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阵列。请改进这个问题,你想要什么还不清楚。请参阅以下内容以改进您的问题: