删除重复项后对 alpha 进行排序的方法 java(集合)
Method to sort alpha after removing duplicates java (collections)
在 java 中使用集合和数组列表并编写一个方法来获取用户输入(列表)并将其放入一个删除重复项的方法中,然后按字母顺序对列表进行排序以进行打印。我写的方法成功地删除了重复项,但不会按字母顺序排序。这是我的方法体:
public static void sortNoDups(ArrayList<String> list) {
// e
ArrayList<String> printedList = new ArrayList<>();
System.out.println("\nWithout duplicates, sorted alphabetically:");
for (String i : list) {
if (!printedList.contains(i)) {
printedList.add(i);
Collections.sort(printedList);
System.out.print(i + " ");
}
}
System.out.println();
}
我也尝试过不使用 "Collections.sort(printedList)" 行,使用 "Collections.sort(list)" 也无济于事。如果需要,很高兴从上面包含额外的代码,但我觉得我应该开始具体看看是否有任何我刚刚遗漏的明显错误。
您的代码没有问题 – 它正确排序 printedList
– 但您实际上并没有打印出来。现在,您的代码正在遍历原始 list
。您正在打印的内容是 System.out.print(i + " ");
,它只是打印来自 list
.
的下一个字符串
要打印已排序 printedList
的内容,请将此添加到方法的末尾:
for (String s : printedList) {
System.out.println(s);
}
此外,您可能还想将 Collections.sort(printedList)
移动到方法的末尾。这样,您将在最后调用一次 sort
,而不是在 for
循环中每次都调用它。
在 java 中使用集合和数组列表并编写一个方法来获取用户输入(列表)并将其放入一个删除重复项的方法中,然后按字母顺序对列表进行排序以进行打印。我写的方法成功地删除了重复项,但不会按字母顺序排序。这是我的方法体:
public static void sortNoDups(ArrayList<String> list) {
// e
ArrayList<String> printedList = new ArrayList<>();
System.out.println("\nWithout duplicates, sorted alphabetically:");
for (String i : list) {
if (!printedList.contains(i)) {
printedList.add(i);
Collections.sort(printedList);
System.out.print(i + " ");
}
}
System.out.println();
}
我也尝试过不使用 "Collections.sort(printedList)" 行,使用 "Collections.sort(list)" 也无济于事。如果需要,很高兴从上面包含额外的代码,但我觉得我应该开始具体看看是否有任何我刚刚遗漏的明显错误。
您的代码没有问题 – 它正确排序 printedList
– 但您实际上并没有打印出来。现在,您的代码正在遍历原始 list
。您正在打印的内容是 System.out.print(i + " ");
,它只是打印来自 list
.
要打印已排序 printedList
的内容,请将此添加到方法的末尾:
for (String s : printedList) {
System.out.println(s);
}
此外,您可能还想将 Collections.sort(printedList)
移动到方法的末尾。这样,您将在最后调用一次 sort
,而不是在 for
循环中每次都调用它。