このコードは、名前、モデル年、リスト価格、および割引率を含む車両オブジェクトを入力するようにユーザーに要求します。ここで発生している問題は、ユーザーが上記のすべての情報を入力すると、車のオブジェクトがアルファベット順ではなく配列リストの一番下に追加されることです。リストは以前にアルファベット順になっていることに注意してください。
while (!valid) {
String str = scan.nextLine();
try {
boolean found = false;
System.out.println("Enter car name: ");
name = scan.nextLine();
System.out.println("Enter car model year: ");
modelYear = scan.nextLine();
System.out.println("Enter car list price: ");
listPrice = scan.nextDouble();
System.out.println("Enter car percent discount: ");
percentDiscount = scan.nextDouble();
int i = 0;
loc = 0;
while (!found && i < carList.size()) {
String nameRetrievedFromCarList = carList.get(i).getName();
String nameToAdd = "";
if (nameToAdd.compareToIgnoreCase(nameRetrievedFromCarList) < 0) {
loc++;
found = true;
}
i++;
}// end while
Proj1CarData newCar = new Proj1CarData(name, modelYear, listPrice, percentDiscount,
discountAmount, netPrice);
carList.add(loc, newCar);
valid = true;
}// end try
catch (NumberFormatException nfe) {
System.out.println("Wrong entry: Try again");
}// end catch
}