1. 程式人生 > >對list去重,通過hashMap的key不能重複。

對list去重,通過hashMap的key不能重複。

public class TestRemoveDuplicateData {

    public static void main(String[] args) {
        List<SingleDog>  lists = new ArrayList<SingleDog>();
        SingleDog a = new SingleDog();
        a.setAge(18);
        a.setName("張三");
        a.setSex("男");
        lists.add(a);
        SingleDog b = new SingleDog();
        b.setAge(23);
        b.setName("李四");
        b.setSex("男");
        lists.add(b);
        SingleDog  c = new SingleDog();
        c.setAge(23);
        c.setName("李四");
        c.setSex("男");
        lists.add(c);
        System.out.println("去重前----------------------");
        for(SingleDog sd :lists){
            System.out.println(sd.toString());
        }
        lists =  TestRemoveDuplicateData.Removedup(lists);
        System.out.println("去重後----------------------");
        for(SingleDog sd :lists){

            System.out.println(sd.toString());
        }
    }

    public  static List<SingleDog>   Removedup(List<SingleDog>  list){
        Map<String,SingleDog> hash = new HashMap<>();
        // 通過hashMap的key不能重複,達到去重的目的
        for(SingleDog aa :list){
            hash.put(aa.getName(),aa);
        }
        List<SingleDog>  newList = new ArrayList<SingleDog>()  ;
        for(Map.Entry<String,SingleDog> set : hash.entrySet()){
            newList.add(set.getValue());
        }
        return  newList;
    }

}

測試結果:

去重前----------------------
SingleDog{age=18, sex='男', name='張三'}
SingleDog{age=23, sex='男', name='李四'}
SingleDog{age=23, sex='男', name='李四'}
去重後----------------------
SingleDog{age=23, sex='男', name='李四'}
SingleDog{age=18, sex='男', name='張三'}