您的位置:首页 > 其它

兰亭集势笔试题:用最优方法从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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: