java中唯一列表的列表

时间:2012-04-06 09:07:37

标签: java containers

我需要在java中创建一个唯一集合的集合。有人可以建议可能的容器。

我希望有类似List<List<int>>的内容,其中每个列表都可以根据其内容重复。

例如,如果说我的父列表的当前状态 [ [1,2,3], [3,4,5], [4,5,6] ]如果我打算添加另一个列表[3,4,5],则不应该重复,也不应该添加。

List的contains()方法将使用整数,浮点数等,但我不确定它是否能匹配列表。

请建议任何其他可能有用的容器。

感谢。

2 个答案:

答案 0 :(得分:3)

您可能最好使用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));

但是当你把一个集合放在一个集合中时要小心。在将它放入集合后,不应再次更改它。

答案 1 :(得分:2)

也许您有兴趣使用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)单个列表也不会有重复的整数条目。