zoukankan      html  css  js  c++  java
  • 用最优方法从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
  • 相关阅读:
    省选测试29
    省选测试28
    省选测试27
    省选测试26
    省选测试25
    最小费用最大流Dinic
    省选测试24
    省选测试23
    省选测试22
    省选测试21
  • 原文地址:https://www.cnblogs.com/xiaobaxiing/p/6530240.html
Copyright © 2011-2022 走看看