簡體   English   中英

java中唯一列表列表

[英]List of unique lists in java

我需要在 java 中創建一個獨特的集合。有人可以為相同的容器建議可能的容器。

我想要類似List<List<int>>的東西,其中每個列表都可以根據其內容重復自身。

例如,如果我當前的父列表 state 是[ [1,2,3], [3,4,5], [4,5,6] ] ,如果我打算添加另一個列表,請說[3,4,5] ,它不應該被復制,也不應該被添加。

List 的 contains() 方法適用於整數、浮點數等,但我不確定它是否能夠匹配列表。

請建議任何其他可能有幫助的容器。

謝謝。

您可能最好使用Set<List<Integer>>而不是List<List<Integer>>

以上適用於您的示例:

Set<List<Integer>> uniqueLists = new HashSet<>();
uniqueLists.add(Arrays.asList(1, 2, 3));
uniqueLists.add(Arrays.asList(3, 4, 5));
uniqueLists.add(Arrays.asList(4, 5, 6));

// Now, this won't be added:
uniqueLists.add(Arrays.asList(3, 4, 5));

不過,將集合放入集合中時要小心。 將它放入集合后,不應再次更改它。

也許您會對使用Set<Set<Integer>>感興趣。
如果您想維護添加順序,可以使用LinkedHashSet

你的代碼會像

Set<Set<Integer> uniqueLists = new LinkedHashSet<Set<Integer>>();

uniqueLists.add(new LinkedHashSet(Arrays.asList(1, 2, 3)));

它將避免使用Set<List<Integer>>的兩個問題。

1)它將保留單個列表的添加順序

2)它的個人列表也不會有重復的 integer 條目。

暫無
暫無

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

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