【发布时间】:2021-12-27 17:31:41
【问题描述】:
我正在编写 java 代码,我应该使用递归方法,我的方法应该 Search() 将 Car 对象 ARR 和 Car 对象 C 的数组作为参数。此方法 如果 C 在 ARR 内,则应返回 true,否则返回 false。 b,方法 findCylinders 将 Car 对象数组 ARR 和汽缸数作为参数 发动机 N。它应该显示所有具有 N 缸发动机的汽车 我的代码运行良好,但它会多次打印该对象。
public class Test_Car_Lab9{
public static void main(String [] args){
Car[] ARR = new Car[50];
for(int i = 0; i < ARR.length; i++){
ARR[i] = new Car(3500, 6, "Mazda", "MX6");
}
Car C = new Car(4700, 8, "Nissan", "Patrol");
System.out.println(Search(ARR, C));
findCylinders(ARR, 6);
}
public static boolean Search(Car[] carsArray, Car carObject){
for(int i = 0; i < carsArray.length; i++){
if(carObject.getMake() == carsArray[i].getMake() &&
carObject.getModel() == carsArray[i].getModel() &&
carObject.getCylinders() == carsArray[i].getCylinders() &&
carObject.getHorsePower() == carsArray[i].getHorsePower())
return true;
}
return false;
}
public static void findCylinders(Car[] carsArray, int numOfCylinders){
for(int i = 0; i < carsArray.length; i++){
if(carsArray[i].getCylinders() == numOfCylinders)
carsArray[i].printCarData();
}
}
}
非常感谢任何帮助。
【问题讨论】:
-
打印“无限”还是“多次”?这些有点不同。您在阵列中添加了 50 个具有 6 个气缸的 Mazda MX6,因此在您的阵列中搜索具有 6 个气缸的条目时,您应该期望它会找到这 50 个对象并打印每个对象。
-
您的问题是使用 == 而不是 String.equals 来比较字符串值
-
@OHGODSPIDERS 不是无限的,但很多时候是的。
-
喜欢 50 次?正如我所说,您有一个包含 50 次
Car(3500, 6, "Mazda", "MX6")的数组,因此,当您告诉程序搜索并输出所有具有 6 个气缸的汽车时,将该汽车打印 50 次就是正确答案。你甚至打算用 50 倍于同一辆车来填充你的阵列吗? -
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
标签: java arrays recursion methods