剔除List中的重复值

本文转自: http://yangfuchao418.iteye.com/blog/777787

方法一 :循环元素删除
//  删除ArrayList中重复元素 
 public static void removeDuplicate(List list){
    for(int i=0 ;i<list.size()-1; i++){
     for(int j=list.size()-1; j>i; j--){
       if(list.get(j).equals(list.get(i))){
         list.remove(j);
       } 
     } 
   } 
   System.out.println(list);
 }

方法二:通过HashSet 剔除
//删除ArrayList中重复元素 
 public static void removeDuplicate(List list){
     HashSet h = new HashSet(list);
     list.clear();
     list.addAll(h);
     System.out.println(list);
 } 

方法三 : 删除ArrayList中重复元素,保持顺序
//删除ArrayList中重复元素,保持顺序    
	 public static void removeDuplicateWithOrder(List list){
	     Set set = new HashSet();   
	     List newList = new ArrayList();   
	     for(Iterator iter=list.iterator();iter.hasNext();){   
	        Object element = iter.next();   
	        if(set.add(element)){
	        	newList.add(element);
	        }
	     }    
	     list.clear();   
	     list.addAll(newList);   
	     System.out.println( " remove duplicate "   +  list);   
	 } 
 

//向list加入元素,保证不含有重复值:
public void del(){
	List<String> list = new ArrayList<String>(); 
	String[] arr = strIdx.split("\\|");
	for(String str : arr){
		if(str==null || "".equals(str)){
			log.info("过滤掉一个!");
			continue;
		}
		if(!list.contains(str)){
			list.add(str);
		}
	}
	return list;
}

你可能感兴趣的:(java,Blog,J#)