jdk1.8新特性
常用方法
package com.example;
import com.example.mybatisgenerator.pojo.Person;
import java.util.*;
import java.util.stream.Collectors;
public class TestLambda {
private static List<Person> list = new ArrayList<>();
static {
Person p1 = new Person("张1", 1, 1);
Person p2 = new Person("张2", 2, 2);
Person p3 = new Person("张3", 2, 3);
Person p4 = new Person("张4", 4, 4);
Person p5 = new Person("张5", 5, 5);
Person p6 = new Person("张6", 6, 6);
Person p7 = new Person("张2", 2, 7);
list.add(p1);
list.add(p3);
list.add(p2);
list.add(p5);
list.add(p4);
list.add(p6);
list.add(p7);
}
public static void main(String[] args) {
List<Person> distinctList = list.stream().distinct().collect(Collectors.toList());
ArrayList<Person> distinctAgeList = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(Person::getAge))), ArrayList::new));
List<Person> sortedList = list.stream().sorted((o1, o2) -> o1.getSort() - o2.getSort()).collect(Collectors.toList());
List<Person> filterList = list.stream().filter(item -> item.getAge() > 3).collect(Collectors.toList());
List<String> mapList1 = list.stream().map(Person::getName).collect(Collectors.toList());
List<String> mapList2 = list.stream().map(item -> item.getName()).collect(Collectors.toList());
double sum = list.stream().mapToDouble(Person::getAge).sum();
double asDouble = list.stream().mapToInt(item -> item.getAge()).average().getAsDouble();
Map<Integer, List<Person>> map = list.stream().collect(Collectors.groupingBy(Person::getAge));
Map<String, Map<Integer, List<Person>>> map2 = list.stream().collect(Collectors.groupingBy(t -> t.getName(), Collectors.groupingBy(t -> t.getAge())));
Map<String, Map<Integer, Integer>> map3 = list.stream().collect(
Collectors.groupingBy(t -> t.getName(),
Collectors.groupingBy(t -> t.getAge(),
Collectors.summingInt(Person::getSort))));
printList(list);
System.out.println("======== 排序后 ======");
list.sort((o1, o2) -> {
return o1.getAge() - o2.getAge();
});
printList(list);
}
public static void printList(List<Person> list) {
list.forEach(item -> {
item.setName(item.getName() + "测试");
System.out.println(item.toString());
});
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-14014.html