所以我有一个数组列表,其中包含最喜欢的颜色列表。例如,数组读取为红色,蓝色,绿色。但现在我希望用户能够“排名”他们喜欢的颜色,因为当前列表不是他们的个人排名。那么我如何将数组列表中的一个元素移动到另一个位置。我希望程序说“列表中的第一项是红色的,你会在哪里排名?”然后他们可以说他们想要在第3位。然后依此类推,直到他们对所有人进行排名。问题是我是阵列列表的新手,不知道如何做到这一点。我会使用Collections.sort(数组列表); ?我怎么能调用数组的元素才能问他们?就像是(在这里使用伪代码)第1行/数组列表的元素1?
到目前为止的代码(最后一部分并没有真正正常工作,但你会看到我要去的地方)
Scanner input = new Scanner(System.in);
ArrayList <String> favoriteColors = new ArrayList <String>();
boolean repeat = true;
while (repeat) {
System.out.println("Enter the name of the file which contains your favorite colors ");
String fileName = input.nextLine().trim();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
System.out.println("Here are your favorite colors according to the file:");
while ((line = reader.readLine()) != null) {
System.out.println(line);
favoriteColors.add((line));
}
System.out.println("Add more? (y/n)");
if (input.next().startsWith("y")) {
System.out.println("Enter : ");
favoriteColors.add(input.next());
} else {
break;
}
for (int i = 0; i < favoriteColors.size(); i++) {
System.out.println(favoriteColors);
}
System.out.println("Remove a color?");
if (input.next().startsWith("y")) {
System.out.println("Which color would you like to remove");
String removeColor = input.nextLine();
int index = favoriteColor.indexOf(removeColor);
favoriteColor.remove(index);
System.out.println(favoriteColor);
}
由于
答案 0 :(得分:0)
&#34;我希望程序说“列表中的第一项是红色的,你会在哪里排名?&#39;然后他们可以说他们想要在第3位。然后依此类推,直到他们对所有人进行排名。&#34;
要执行此操作,您需要创建一个与原始列表长度相同的新列表,但其中的每个值都是一些空白颜色,然后您将浏览原始列表,询问他们将每种颜色排列在哪里,并将颜色插入到他们将其排名的位置。您可以使用&#34; .get(index)&#34;从数组列表中获取值。一个例子:
ArrayList a = new ArrayList();
a.get(5)
这在技术上会抛出一个错误,因为索引5上没有元素,但除了这个例子之外还有一个元素。