重複我有一個項目List
名爲items
並使用我複製此列表的Set
:複製對象複製到另一個集合的集合,而無需使用聚合操作
List<Item> items = new ArrayList<>();
items.add(new Item("Suremen Body Spray", 1900, 45));
items.add(new Item("HP wireless mouse", 5500, 5));
items.add(new Item("UWS USB memory stick", 1900, 8));
items.add(new Item("MTN modem", 1900, 45));
items.add(new Item("MTN modem", 1900, 45));
Collection<Item> noDups = new LinkedHashSet<Item>(items); //Copy items to noDups
//Print the new collection
noDups.stream()
.forEach(System.out::println);
當我運行代碼,所有的項目如輸出中所示被複制到集合中。
不同的測試只用絃樂作品就好:
List<String> names = new ArrayList<>();
names.add("Eugene Ciurana");
names.add("Solid Snake");
names.add("Optimus Prime");
names.add("Cristiano Ronaldo");
names.add("Cristiano Ronaldo");
Collection<String> itemCollection = new HashSet<String>(names);
itemCollection.stream()
.forEach(System.out::println);
我可以用什麼方法列表複製到一組不重複?是否有任何聚合操作,或者我必須編寫自定義方法?
唐不要確定散列碼不是強制性的。合約需要一個具有自定義「equals」的自定義哈希碼,如果合約被破壞,「HashSet」可能會遺漏重複。 – chrylis
@chrylis是的,你是對的。謝謝。 –
謝謝你,現在我知道比昨天做的更多的java。 :) –