我試圖通過一個小程序,並不能真正完全理解它。在某種意義上說,我錯誤地認爲它確實如此,但我知道where =[]
如果任何人都能指出我正確的方向,我會很感激。樹形圖通過
import java.util.*;
public class Duplicates {
//Here we have a main method
public static void main(String[] args)
{
String[] words = args[0].split(" ");
Set<String> uniques = new TreeSet<String>();
Set<String> duplicates = new TreeSet<String>();
for (String s : words) {
if (!uniques.add(s)) {
duplicates.add(s);
}
}
uniques.removeAll(duplicates);
System.out.println("Unique words "+uniques);
System.out.print("Duplicate words "+duplicates);
}
我明白它做了什麼(有點),但我不確定當你得到一個獨特的詞會發生什麼。正如在循環中,它說if (!unique.add(s))
,這樣只會處理重複...?那麼當我們進入if語句時,它將處理duplicates.add(s)
。所以,我不明白如何將唯一身份添加到獨特的集合?
你甚至讀過[this](http://docs.oracle.com/javase/8/docs/api/java/util/Set.html)嗎?......如果你確實知道,那麼你會知道'Set's不能存儲重複項。 – Astrobleme
閱讀Set.add()和Set.removeAll()的javadoc,然後在紙上逐步執行代碼,並帶有包含重複項的字符串示例列表。附註:HashSet對於這個程序來說是更好的選擇。 –
是的,這是程序中的重點......這是一個演講中給我們的例子......我們刪除所有重複的東西。我然而不能通過/如果 – user3443834