我的数据序列与其独特元素一样重要。意思是如果已添加某些内容,则不应再次添加,并且必须记住该序列。
Set不记得添加它的顺序(散列或排序),而List不是唯一的。
这个问题的最佳解决方案是什么?
是否应该有一个列表并循环通过它来测试唯一性 - 我试图避免? 或者应该有两个集合,一个是List,另一个是Set - 我也试图避免? 或者是否完全解决了这个问题。
答案 0 :(得分:1)
在下面的代码中是您的参考
LinkedHashSet<String> al=new LinkedHashSet<String>();
al.add("guru");
al.add("karthik");
al.add("raja");
al.add("karthik");
Iterator<String> itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
<强>输出强>
guru
karthik
raja
答案 1 :(得分:0)
使用LinkedHashSet。它既可以作为列表也可以作为集合。它具有集合的唯一性质量,但仍会记住您向其中插入项目的顺序,这允许您按插入顺序进行迭代。
来自文档:
Set接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与HashSet的不同之处在于它维护了一个贯穿其所有条目的双向链表。此链接列表定义迭代排序,即元素插入集合(插入顺序)的顺序。请注意,如果将元素重新插入到集合中,则不会影响插入顺序。 (如果s.contains(e)在调用之前立即返回true,则调用s.add(e)时,将元素e重新插入到集合中。)
答案 2 :(得分:0)
您可以使用SortedSet 或LinkedHashSet
答案 3 :(得分:0)
LinkedHashSet是最好的出路