public class CollectionTest {
public static void main(String[] args) {
User user1 = new User(1,"zs",20);
User user2 = new User(2,"ls",21);
User user3 = new User(3,"ww",22);
User user4 = new User(4,"zs",22);
User user5 = new User(5,"ls",25);
User user6 = new User(5,"ls",25);
List<User> users = Arrays.asList(user1, user2, user3, user4, user5,user6);
ArrayList<User> collect = users.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(User::getName))), ArrayList::new));
collect.forEach(user-> System.out.println(user));
System.out.println("----------------------------------------");
ArrayList<User> collect2 = users.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(User::getAge))), ArrayList::new));
collect2.forEach(user-> System.out.println(user));
System.out.println("----------------------------------------");
TreeSet<User> collect3 = users.stream().collect(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(User::getAge))));
collect3.forEach(user-> System.out.println(user));
System.out.println("----------------------------------------");
Set<User> collect4 = users.stream().collect(Collectors.toSet());
collect4.forEach(user-> System.out.println(user));
}
}
User{id=2, name='ls', age=21}
User{id=3, name='ww', age=22}
User{id=1, name='zs', age=20}
User{id=1, name='zs', age=20}
User{id=2, name='ls', age=21}
User{id=3, name='ww', age=22}
User{id=5, name='ls', age=25}
User{id=1, name='zs', age=20}
User{id=2, name='ls', age=21}
User{id=3, name='ww', age=22}
User{id=5, name='ls', age=25}
User{id=1, name='zs', age=20}
User{id=3, name='ww', age=22}
User{id=5, name='ls', age=25}
User{id=2, name='ls', age=21}
User{id=4, name='zs', age=22}
User{id=5, name='ls', age=25}