兰亭集势笔试题:用最优方法从LinkedList列表中删除重复元素
2013-10-12 17:19
591 查看
用运行速度最优的方法从LinkedList列表里删除重复的元素,例如A->B->BB->B->C,返回A->B->BB->C。
考试的时候没完全想明白,考完又想了想,其实还是蛮简单的。思路很简单:利用一个Set存放LinkedList中的元素,在迭代的过程中,判断当前元素是否在Set中出现过,如果出现过就删除,也就是说我们在遍历的过程中进行删除操作,所以这里要用到ListIterator,而不能用普通的Iterator。
代码如下:
[java] view
plaincopy
private static LinkedList removeDuplicatedElements(LinkedList list) {
HashSet set = new HashSet();
Iterator iter = list.listIterator();
while(iter.hasNext()){
String str = (String)iter.next();
if(!set.contains(str))
set.add(str);
else
iter.remove();
}
return list;
}
考试的时候没完全想明白,考完又想了想,其实还是蛮简单的。思路很简单:利用一个Set存放LinkedList中的元素,在迭代的过程中,判断当前元素是否在Set中出现过,如果出现过就删除,也就是说我们在遍历的过程中进行删除操作,所以这里要用到ListIterator,而不能用普通的Iterator。
代码如下:
[java] view
plaincopy
private static LinkedList removeDuplicatedElements(LinkedList list) {
HashSet set = new HashSet();
Iterator iter = list.listIterator();
while(iter.hasNext()){
String str = (String)iter.next();
if(!set.contains(str))
set.add(str);
else
iter.remove();
}
return list;
}
相关文章推荐
- 兰亭集势笔试题:用最优方法从LinkedList列表中删除重复元素
- 兰亭集势笔试题:用最优方法从LinkedList列表中删除重复元素
- java 删除linkedlist链表中重复元素
- Python实现列表删除重复元素的三种常用方法分析
- 【Python进阶】删除list里的重复元素的三种方法效率分析
- java 删除ArrayList LinkedList集合中的重复元素
- 三种方法删除列表中重复的元素及效率分析!
- python列表删除重复元素的三种方法
- 三种方法删除列表中重复的元素及效率分析!
- Python实现连接两个无规则列表后删除重复元素并升序排序的方法
- 算法22:给定一个排好序的linked list,删除其中所有的重复元素。比如给定1->2->3->3-> 4->4->5,返回1->2->5。给定1->1->1->2->3,返回2->3
- jQuery根据元素值或元素下标来删除一个数组元素及数组对象方法列表
- list列表中去除重复元素时不小心踩的坑
- list删除重复元素
- 去除List列表中重复值(3种解决方法)
- 1.2.3 List.clear方法——从列表中移除所有元素
- 【数据结构_顺序表_List_1038】顺序表中重复元素的删除
- 删除数组重复元素的方法
- Java在线笔试编程题(1)---list去除重复元素、幸运袋剪枝法、模拟洗牌
- 对List元素迭代删除的注意事项以及三个方法