list 根据某个属性去重(lambda方式)

87 阅读1分钟
package cn.xyz.mianshi.service.impl;

import cn.xyz.mianshi.vo.User;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;


public class Test {
    public static  List<User> users = null;
    static {
            users = new ArrayList<User>();
            User u=new User();
            u.setAccount("a1");
            User u2=new User();
            u2.setAccount("a3");
            User u3=new User();
            u3.setAccount("a3");
            users.add(u3);
            users.add(u2);
            users.add(u);

    }
    public static void main(String[] args) {
    	 System.out.println(users.toString());
        List<User> list =users.stream().collect(
                Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getAccount()))),
                        ArrayList::new));
        System.out.println(list.toString());

    }
}