【问题标题】:Method to sort alpha after removing duplicates java (collections)删除重复项java(集合)后对alpha进行排序的方法
【发布时间】:2019-09-22 01:01:14
【问题描述】:

在 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)”也无济于事。如果需要,很高兴包含上面的其他代码,但我觉得我应该开始具体看看是否有任何我刚刚遗漏的明显错误。

【问题讨论】:

    标签: java sorting collections alpha


    【解决方案1】:

    您的代码很好——它可以正确排序printedList——但实际上你并没有打印出来。现在,您的代码正在遍历原始的list。您要打印的是System.out.print(i + " ");,它只是打印来自list 的下一个字符串。

    要打印已排序的 printedList 的内容,请将其添加到方法的末尾:

    for (String s : printedList) {
        System.out.println(s);
    }
    

    此外,您可能还想将Collections.sort(printedList) 移动到方法的末尾。这样,您将在最后调用一次 sort,而不是在您的 for 循环中每次都调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 2013-12-03
      • 2018-12-24
      • 2010-11-15
      • 2011-10-20
      • 2016-03-12
      相关资源
      最近更新 更多