方法一:循环元素删除 
//  删除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); 
} 参考与:http://xinqiqi123.iteye.com/blog/1148984

解决方案 »

  1.   

    可以定义一个方法进行去除    publi List<String> getNewList(List<String> li){
            List<String> list = new ArrayList<String>();
            for(int i=0; i<li.size(); i++){
                String str = li.get(i);  //获取传入集合对象的每一个元素
                if(!list.contains(str)){   //查看新集合中是否有指定的元素,如果没有则加入
                    list.add(str);
                }
            }
            return list;  //返回集合
        }    public class Test{
            public static void main(String[] args){
               ArrayList<String> arr = new ArrayList<String>();
               arr.add("aaa");
               arr.add("bbb");
               arr.add("aaa");
               arr.add("ccc");
               arr = getNewList(arr);  //方法去重
               System.out.println(arr);
            }
        }
      

  2.   

    方法在主方法中直接用了,忘写static了,测试的话自己加上
      

  3.   

    ArrayList<String> result = new ArrayList<String>();for(String s: sources){
        if(Collections.frequency(reslut, s) < 1) result.add(s);
    }
      

  4.   

    ArrayList<String> result = new ArrayList<String>();for(String s: sources){
    if(Collections.frequency(reslut, s) < 1) result.add(s);
    }
      

  5.   

    List list = new ArrayList();

    list.add("AAAA");
    list.add("AAAA");
    list.add("BBBB");
    list.add("CCCC");
    list.add("DDDD");
    list.add("AAAA");
    list.add("BBBB");

            List list1 = new ArrayList();

    for(int z=0;z<list.size();z++)
    {
    if(!list1.contains(list.get(z))){
    list1.add(list.get(z));
    }
    }
      

  6.   

    先用set进行去重,然后把set里面的数据放到list中即可。
      

  7.   

    去除List使用HashSet最简单了:public List removeDeuplicate(List arlList)
    {
    HashSet h=new HashSet(arlList);
    arlList.clear();
    arlList.addAll(h);
    List list=new ArrayList();
    list=arlList;
    return list;
    }
      

  8.   

    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Set;public class Test {
     public static void main(String[] args) {
     
     List list = new ArrayList();
    list.add("A");
    list.add("B");
    list.add("C");
    list.add("A");
    list.add("A");
    System.out.println(list.size());

    Set s = new HashSet();
    for(int i=0;i<list.size();i++){
    s.add(list.get(i));

    }
    System.out.println(s.size());
    for (Iterator iterator = s.iterator(); iterator.hasNext();) {
    Object object = (Object) iterator.next();
    System.out.print(object);
    }
     }
     
    }
      

  9.   

    我想最好的方法是选用特定的集合类来实现。Set都是不能包含重复元素的。另一个问题就是,如果是自定义类型,那么必须实现覆盖
    public boolean equals(Object obj)
    方法。
      

  10.   

    以上的回答都太复杂了~我给个简单的:
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(1);
        list.add(2);

        list = new ArrayList<Integer>(new HashSet<Integer>(list));
    }
    仅仅一行代码就搞掂了~
      

  11.   

    个人觉得这个方法 还不如用contains方法,效率应该高点,碰到相同的就直接返回了,而 frequency 这个方法需要 把相同个数计算出来,势必要遍历整个list才知道重复的次数