首页 > 代码库 > 去除List列表中重复值(稍作调整,也适合于List<T> 和 List<?>)

去除List列表中重复值(稍作调整,也适合于List<T> 和 List<?>)

方法一 循环元素删除 

[c-sharp] view plaincopy
  1. public static void removeDuplicate(List list) {  
  2.   for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {  
  3.    for ( int j = list.size() - 1 ; j > i; j -- ) {  
  4.      if (list.get(j).equals(list.get(i))) {  
  5.        list.remove(j);  
  6.      }   
  7.     }   
  8.   }   
  9.   System.out.println(list);  
 

方法二 图片点击可在新窗口打开查看 // 删除ArrayList中重复元素 

[c-sharp] view plaincopy
  1. public static void removeDuplicate(List list) {  
  2.   for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {  
  3.    for ( int j = list.size() - 1 ; j > i; j -- ) {  
  4.      if (list.get(j).equals(list.get(i))) {  
  5.        list.remove(j);  
  6.      }   
  7.     }   
  8.   }   
  9.   System.out.println(list);  
 

方法三 删除ArrayList中重复元素,保持顺序

[c-sharp] view plaincopy
  1. // 删除ArrayList中重复元素,保持顺序   
  2.  public static void removeDuplicateWithOrder(List list) {  
  3.     Set set = new HashSet();  
  4.      List newList = new ArrayList();  
  5.    for (Iterator iter = list.iterator(); iter.hasNext();) {  
  6.          Object element = iter.next();  
  7.          if (set.add(element))  
  8.             newList.add(element);  
  9.       }   
  10.      list.clear();  
  11.      list.addAll(newList);  
  12.     System.out.println( " remove duplicate " + list);  
  13.  }  
 

方法四  linq

[c-sharp] view plaincopy
  1. IList<string> U_list= new List<string>();  
  2. IList<string> Update_list= new List<string>();  
  3. var ulist = (from li in U_list  
  4.                   select li).Distinct();  
  5.  foreach (var d in ulist)  
  6.   {  
  7.      Update_list.Add(d);  
  8.   }  
 其他情况:

去除List列表中重复值(3种解决方法)

public static void main(String[] args) {
   String[] ar = { "dd", "c", "dd", "ff", "b", "e", "e" };
   ArrayList list = new ArrayList();
   for (int i = 0; i < ar.length; i++) {
    list.add(ar[i]);
   }
   System.out.println("运行前:");
   for (int i = 0; i < list.size(); i++) {
    System.out.print(list.get(i) + " ");
   }
   System.out.println();
   /*   第一种方法                   */
   /**
   * set方法去除list中重复的数据 set中插入重复的值只保留一个
   */
   HashSet h = new HashSet(list);
   list.clear();
   list.addAll(h);
   /* 第一种方法                   */
  
   /* 第二种方法                   */
   /**
   * 第二中方法去除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);
   /* 第二种方法                   */
  
  
   /* 第三种方法                        */
   /**
   * 普通的方法去除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("运行后:");
   for (int i = 0; i < list.size(); i++) {
    System.out.print(list.get(i) + " ");
   }
}