Lambda
- 基本使用实例
- () -> result 不需要参数,直接返回result
- x -> 2 * x 接收一个参数返回其2倍
- (x,y) -> x - y 接收两个参数并返回差值
list.stream.fiflter
基本使用
准备一个实例 EmployPojopublic class EmployPojo { private String name; private String age; private String address; } ```java 具体使用: ```java public static void main(String[] args) { List<EmployPojo> pojos = Lists.newArrayList(); pojos.add(EmployPojo.builder().name("dong").age("25").address("china").build()); pojos.add(EmployPojo.builder().name("xiao").age("26").address("china").build()); pojos.add(EmployPojo.builder().name("hua").age("27").address("china").build()); pojos.add(EmployPojo.builder().name("hua").age("3").address("china").build()); pojos.add(EmployPojo.builder().name("dongxiaohua").age("28").address("china").build()); List<String> argList = Lists.newArrayList("25", "9", "10"); /** * 将符合表达式的第一个对象返回 * Optional<EmployPojo> employPojo * employPojo.orElse(null); */ Optional<EmployPojo> employPojo = pojos.stream().filter(pojo -> argList.contains(pojo.getAge())).findFirst(); // 将符合表达式的所有对象返回 List<EmployPojo> employPojos = pojos.stream().filter(pojo -> (argList.contains(pojo.getAge()) || "28".equals(pojo.getAge()))).collect(Collectors.toList()); // 将符合表达式的所有对象只能够的指定字段返回 List<String> names = pojos.stream().filter(pojo -> argList.contains(pojo.getAge())).map(EmployPojo::getName).collect(Collectors.toList()); /** * 将list按照指定字段作为key,value转换成map * 其中(k1,k2)-> k2 表示当key重复的时候选择后者覆盖前者,或者例如下给定重新值 */ Map<String, String> map = pojos.stream().collect( Collectors.toMap(EmployPojo::getName, EmployPojo::getAge, (k1, k2) -> String.valueOf((Integer.valueOf(k1) + Integer.valueOf(k2))))); } ```java