JAVA-去掉LIST中重复值

来源:互联网 发布:mac系统修复软件 编辑:程序博客网 时间:2024/06/06 07:34

来自CSDN论坛 进行了一下总结。
1.通过循环暴力删除
2.利用hashset特性(无重复对象)

import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;public class my_test3 {    public static void main(String args[]) {        List<String> list = new ArrayList<String>();        String[] string = { "AAAA", "AAAA","d","AAAA","BBBB", "BBBB", "CCCC",                            "CCCC","d","d" };        for(int i=0;i<string.length;i++)        list.add(string[i]);        //forDel(list);                         //--- 1. 循环删除重复原素        //removeDuplicate(list);                //--- 2. 通过hashset剔除 (set中没有重复对象)        //removeDuplicateWithOrder(list);       //--- 3. 通过Iterator  其实也是根据set性质        //removeByCollection(string,list);      //--- 4. 通过collection的frequency方法        list = new ArrayList<String>(new HashSet<String>(list));  //---- 5.最为简单的方法        System.out.println(list);           //---打印list    }    //--- 1. 循环删除重复原素    public static void forDel(List<String> list){        for(int i=0; i<list.size() -1; i++){            //for(int j=i+1;j<list.size();j++){            for(int j=list.size()-1;j>i;j--){                if(list.get(j).equals(list.get(i))){                    list.remove(j);                }            }        }    }    //---- 2.通过hashset剔除    public   static   void  removeDuplicate(List<String> list)   {         HashSet<String> h  =   new  HashSet<String>(list);         list.clear();         list.addAll(h);     }     //---- 3.通过Iterator  其实也是根据set性质    public   static   void  removeDuplicateWithOrder(List<String> list) {        Set<String> set = new HashSet<String>();        List<String> newList = new ArrayList<String>();        for(Iterator<String> iter = list.iterator();iter.hasNext();){            String element  = iter.next();            if(set.add(element))                newList.add(element);        }            list.clear();            list.addAll(newList);    }    //---- 4.Collections.frequency方法    public static void removeByCollection(String string[],List<String> list){        list.clear();        for(String s: string){            if(Collections.frequency(list, s) < 1) list.add(s);        }    }}
原创粉丝点击