首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

兰亭集势笔考试题:用最优方法从LinkedList列表中删除重复元素

2013-10-12 
兰亭集势笔试题:用最优方法从LinkedList列表中删除重复元素用运行速度最优的方法从LinkedList列表里删除重

兰亭集势笔试题:用最优方法从LinkedList列表中删除重复元素

用运行速度最优的方法从LinkedList列表里删除重复的元素,例如A->B->BB->B->C,返回A->B->BB->C。

考试的时候没完全想明白,考完又想了想,其实还是蛮简单的。思路很简单:利用一个Set存放LinkedList中的元素,在迭代的过程中,判断当前元素是否在Set中出现过,如果出现过就删除,也就是说我们在遍历的过程中进行删除操作,所以这里要用到ListIterator,而不能用普通的Iterator。

代码如下:

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);elseiter.remove();}return list;}


热点排行