簡體   English   中英

刪除重復項后對 alpha 進行排序的方法 java(集合)

[英]Method to sort alpha after removing duplicates java (collections)

使用 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循環中每次都調用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM