初始数据:
Person() {
// id
private Long id; // 年龄 private Integer age; // 姓名 private String name; // 城市 private String city; } // 年龄,姓名,城市 Person person1 = new Person(1, 12, "张三", "北京"); Person person2 = new Person(2, 13, "李四", "北京"); Person person3 = new Person(3, 12, "王五", "上海"); Person person4 = new Person(4, 13, "赵六", "北京"); List<Person> persons = new ArrayList(); persons.add(person1); persons.add(person2); persons.add(person3); persons.add(person4);
persons.stream()
.mapToInt(Person::getAge).sum();
persons.stream()
.collection(Collectors.groupingBy(Person::getCity))
persons.stream()
.filter(a -> Objects.equals(a.getName(), "张三"))
.collect(Collectors.toList());
Map<Long, Person> personMap = persons.stream()
.collect(Collectors.toMap(Person::getId, a -> a, (k1, k2) -> k1));
// 比较id,顺序 persons.sort(Comparator.comparing(Person::getId)); // 先比较id,再比较年龄 persons.sort(Comparator.comparing(Person::getId).thenCpmpareing(Person.getAge));
List<String> names = persons.stream()
.map(Person::getName)
.collect(Collectors.toList());
原文:https://www.cnblogs.com/jijiecong/p/14759861.html