zoukankan      html  css  js  c++  java
  • List去除重复的元素

         有两种方法,一种是去重不带顺序的,一种是去重带顺序的。

    	/*
    	 * 方法1:	无顺序
    	 * Hastset根据hashcode判断是否重复,数据不会重复
    	 */
    	public static List<String> deleteDuplicate(List<String> list){
    		Set<String> set = new HashSet<String>(list);
    		list.clear();
    		list.addAll(set);
    		return list;
    	}
    	
    	/*
    	 * 方法2:带顺序
    	 * 通过Hashset的add方法判断是否已经添加过相同的数据,如果已存在相同的数据则不添加
    	 */
    	public static List<String> deleteDuplicateWithOrder(List<String> list){
    		
    		Set<String> set = new HashSet<String>();
    		List<String> newList = new ArrayList<String>();
    		
    		Iterator<String> it = list.iterator();
    		while(it.hasNext()){
    			String str = (String)it.next();
    			if(set.add(str)){
    				newList.add(str);
    			}
    		}
    		
    		list.clear();
    		list.addAll(newList);
    		return newList;
    	}

    测试:

    	@Test
    	public void test1(){
    		List<String> list = new ArrayList<String>();
    		list.add("AAA");
    		list.add("BBB");
    		list.add("CCC");
    		list.add("DDD");
    		list.add("BBB");
    		list.add("DDD");
    		list.add("FFF");
    		
    		//AAA,CCC,BBB,DDD,FFF,
    		list = deleteDuplicate(list);
    	}
    	
    	@Test
    	public void test2(){
    		List<String> list = new ArrayList<String>();
    		list.add("AAA");
    		list.add("BBB");
    		list.add("CCC");
    		list.add("DDD");
    		list.add("BBB");
    		list.add("DDD");
    		list.add("FFF");
    		
    		//AAA,BBB,CCC,DDD,FFF,
    		list = deleteDuplicateWithOrder(list);
    	}
  • 相关阅读:
    Solr 删除数据的几种方式
    velocity 随笔
    LOG4J.PROPERTIES配置详解(转载)
    转 如何使用velocity模板引擎开发网站
    通过pinyin4j将汉字转换为全拼 和 拼音首字母
    去除数组中的重复数据
    java 转义字符
    多重背包(学习笔记)
    Team Queue
    [HAOI2008]糖果传递
  • 原文地址:https://www.cnblogs.com/yangang2013/p/5838147.html
Copyright © 2011-2022 走看看