java如何迭代列表项并删除重复项,同时保持原始顺序?
注意:这个问题是我的作业。因此,有些规则似乎并不正常
我之前才意识到我的问题毫无意义。所以我编辑了它
假设我有一个包含整数[1,2,3,4,1,2,1,5]的列表
通过使用迭代器,如何在保持项目顺序不中断的情况下删除重复的项目
上述列表的预期结果应为[1,2,3,4,5] 不允许使用And contain()方法
我目前的想法和马纳什·兰扬·达库亚在这个问题上的回答是一样的 How do I remove repeated elements from ArrayList?
public static void main(String[] args){
ArrayList<Object> al = new ArrayList<Object>();
al.add("abc");
al.add('a');
al.add('b');
al.add('a');
al.add("abc");
al.add(10.3);
al.add('c');
al.add(10);
al.add("abc");
al.add(10);
System.out.println("Before Duplicate Remove:"+al);
for(int i=0;i<al.size();i++){
for(int j=i+1;j<al.size();j++){
if(al.get(i).equals(al.get(j))){
al.remove(j);
j--;
}
}
}
System.out.println("After Removing duplicate:"+al);
}
但是如果我想在这里使用迭代器而不是for循环呢?我怎样才能做到这一点(删除重复的项目,同时保持订单不变)
如果问题不够清楚或太模糊。请指出!我会试着重新措辞
谢谢你的帮助
# 1 楼答案
你不需要使用
Iterator
来实现这一点。一种简单的方法是使用LinkedHashSet,它只允许包含像HashSet
(无重复)这样的唯一元素,保持插入顺序例如:
输出: