用最优方法从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); else iter.remove(); } return list; }

http://www.tuicool.com/articles/MrYZZb


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM