java中唯一列表的列表
我需要用java创建一个独特的集合。有没有人能给我推荐一下可能的集装箱 我想要一个类似于java中唯一列表的列表,java,containers,Java,Containers,我需要用java创建一个独特的集合。有没有人能给我推荐一下可能的集装箱 我想要一个类似于List的东西,其中每个列表都可以重复其内容 例如,如果父列表的当前状态为say [[1,2,3],[3,4,5],[4,5,6]如果我打算添加另一个列表,比如说[3,4,5],则不应重复,也不应添加 List的contains()方法将处理整数、浮点等,但我不确定它是否能够匹配List 请建议其他可能有帮助的容器 谢谢。您最好使用Set而不是List 以上内容适用于您的示例: Set<List<
List
的东西,其中每个列表都可以重复其内容
例如,如果父列表的当前状态为say
[[1,2,3],[3,4,5],[4,5,6]
如果我打算添加另一个列表,比如说[3,4,5]
,则不应重复,也不应添加
List的contains()方法将处理整数、浮点等,但我不确定它是否能够匹配List
请建议其他可能有帮助的容器
谢谢。您最好使用
Set
而不是List
以上内容适用于您的示例:
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 uniquelist=newhashset();
添加(Arrays.asList(1,2,3));
添加(Arrays.asList(3,4,5));
添加(Arrays.asList(4,5,6));
//现在,将不添加以下内容:
添加(Arrays.asList(3,4,5));
但是,当你把一个集合放在一个集合中时要小心。在将其放入集合后,您不应再次更改它。也许您有兴趣使用
set
如果您想维护添加顺序,可以使用
LinkedHashSet
您的代码如下
Set<Set<Integer> uniqueLists = new LinkedHashSet<Set<Integer>>();
uniqueLists.add(new LinkedHashSet(Arrays.asList(1, 2, 3)));
Set使用Set而不是list我不明白。由于第二个3,4,5
对象与第一个3,4,5
对象是分开的,所以此集合是否还会添加第二个3,4,5
对象?@MattD:数组。ArrayList
根据其内容实现equals()
和hashCode()
。试试看。如果你添加了一个不同的顺序,比如4,3,5怎么办?@goyalshub1509:这与3,4,5
的列表不同。如果希望它们是同一个集合,请使用集合。