提问人:Nicolás Ortega Muñoz 提问时间:9/21/2022 更新时间:9/21/2022 访问量:100
通过扫描仪选择对象并将其添加到 arrayList 中
Select object via scanner and add it to an arrayList
问:
所以我想将一个已经创建的对象添加到一个列表中,从控制台中选择它(我不知道扫描仪是否工作)。
Scanner input = new Scanner(System.in);
Car c1 = new Car("bmw", 1);
Car c2 = new Car("mercedes", 1);
Car c3 = new Car("susuki", 1);
ArrayList<Car> carList = new ArrayList<>();
carList.add(c1);
carList.add(c2);
//something like this
Car carToAdd = input.nextCar();
carList.add(carToAdd);
例如,我想将 Car c3 添加到 ArrayList。 请帮忙,谢谢D:
答:
0赞
Austin
9/21/2022
#1
根据您希望显示选项的方式以及希望用户输入到控制台的内容,您可能需要处理不同的方案。我能想到的最简单的方法是在一个数组中列出所有可用的汽车,然后侦听一个索引(如果你愿意,可以偏移一个)。然后使用该索引将所需的汽车从 cars 数组中拉出,并将其放入结果数组中。
下面是一个示例。为了简单起见,我没有创建汽车类,而是使用了字符串。
import java.util.Scanner;
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> cars = new ArrayList<String>();
cars.add("chevy");
cars.add("ford");
cars.add("weiner-mobile");
System.out.println("Please select a car");
for(int i = 0; i<cars.size(); i++){
System.out.println(String.valueOf(i+1)+" ) " + cars.get(i));
}
int reply = scanner.nextInt();
System.out.println("you chose: " + cars.get(reply-1));
ArrayList<String> chosenCar = new ArrayList<String>();
chosenCar.add(cars.get(reply-1));
}
}
输出:
Please select a car
1 ) chevy
2 ) ford
3 ) weiner-mobile
> 2
you chose: ford
注意:您可能希望确保输入是范围内的索引,方法是将其括在 try/catch 中并处理 indexOutOfRange 异常,或者在调用 get(i) 之前根据 Array 的长度检查索引以确保它在范围内。如果输入不可转换为 int,则调用将引发异常nextInt()
评论