1、实体类和list集合
//实体类 public class User { private int id; private String name; private int age; public User(int id,String name,int age){ this.id = id; this.name = name; this.age = age; } }
//创建list
List<User> users = new ArrayList<>(); users.add(new User(1,"A",8)); users.add(new User(2,"A",7)); users.add(new User(3,"A",6)); users.add(new User(4,"B",7)); users.add(new User(5,"B",6)); users.add(new User(6,"C",6)); users.add(new User(6,"C",6));
2、list 操作
/** * 1,跟据某个属性(name)分组 **/ Map<String,List<User>> collectName = users.stream().collect(Collectors.groupingBy(User::getName)); System.out.println(collectName); /** * 2,根据某个属性(name)分组,求age的和 **/ Map<String,Integer> collectNameSumAge = users.stream().collect(Collectors.groupingBy(User::getName,Collectors.summingInt(User::getAge))); System.out.println(collectNameSumAge); /** * 3,取出一组对象的某个属性(name)组成一个新集合 */ List<String> names = users.stream().map(User::getName).collect(Collectors.toList()); System.out.println(names); /** * 4,list去重复 */ names = names.stream().distinct().collect(Collectors.toList()); System.out.println(names); users = users.stream().distinct().collect(Collectors.toList()); System.out.println(users); /** * 5,根据某个属性(name)添加条件过滤数据 **/ users = users.stream().filter(user -> user.getName().equals("A")).collect(Collectors.toList()); System.out.println(users); /** * 6,判断一组对象里面有没有属性值是某个值 */ boolean checkName = names.contains("A"); System.out.println(checkName); boolean bool = users.stream().anyMatch(user -> "A".equals(user.getName())); System.out.println(bool);