Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
方法在删除重复项(java集合)后对alpha进行排序_Java_Sorting_Collections_Alpha - Fatal编程技术网

方法在删除重复项(java集合)后对alpha进行排序

方法在删除重复项(java集合)后对alpha进行排序,java,sorting,collections,alpha,Java,Sorting,Collections,Alpha,在java中使用集合和数组列表,编写一个方法来获取用户输入(list),并将其放入一个方法中,该方法删除重复项,然后按字母顺序对列表进行排序以打印。我编写的方法成功地删除了重复项,但不会按字母顺序排序。这是我的方法主体: public static void sortNoDups(ArrayList<String> list) { // e ArrayList<String> printedList = new ArrayList<&

在java中使用集合和数组列表,编写一个方法来获取用户输入(list),并将其放入一个方法中,该方法删除重复项,然后按字母顺序对列表进行排序以打印。我编写的方法成功地删除了重复项,但不会按字母顺序排序。这是我的方法主体:

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();
    }
publicstaticvoidsortnodups(ArrayList列表){
//e
ArrayList printedList=新的ArrayList();
System.out.println(“\n没有重复项,按字母顺序排序:”);
for(字符串i:列表){
如果(!printedList.contains(i)){
打印列表。添加(i);
集合。排序(打印列表);
系统输出打印(i+“”);
}
}
System.out.println();
}

我也尝试过不使用“Collections.sort(printedList)”行,也不使用“Collections.sort(list)”行,但都没有效果。如果需要的话,我很乐意包含上面的额外代码,但我觉得我应该从具体的开始,看看是否有任何我刚刚遗漏的明显错误

您的代码很好–它正确地排序了
printedList
–但实际上您并没有打印出来。现在,您的代码正在原来的
列表中迭代。您正在打印的东西是
System.out.print(i+)
正在打印
列表
中的下一个字符串

要打印已排序的
printedList
的内容,请在方法末尾添加以下内容:

for (String s : printedList) {
    System.out.println(s);
}
此外,您可能还希望将
Collections.sort(printedList)
移动到方法的末尾。这样,您将在最后调用一次
sort
,而不是在
for
循环中每次都调用它