java中的lamda表达式


List操作:

循环:

list.forEach((p) -> System.out.printf("%s %s; %n", p.getFirstName(), p.getLastName()));  

排序:

System.out.println("根据 name 排序,并显示前5个");  
List sortedJavaProgrammers = javaProgrammers  
          .stream()  
          .sorted((p, p2) -> (p.getFirstName().compareTo(p2.getFirstName())))  
          .limit(5)  
          .collect(toList());  
  

过滤:

list.stream()  
          .filter((p) -> (p.getSalary() > 1400))  
          .forEach((p) -> System.out.printf("%s %s; ", p.getFirstName(), p.getLastName()));  

将列表中的元素的某一个属性拼接成字符串,或放入一个数组:

String phpDevelopers = phpProgrammers  
          .stream()  
          .map(Person::getFirstName)  
          .collect(joining(" , ")); //   
  
System.out.println("将 Java programmers 的 first name 存放到 Set:");  
Set javaDevFirstName = javaProgrammers  
          .stream()  
          .map(Person::getFirstName)  
          .collect(toSet());  
  
List javaDevFirstName = javaProgrammers  
          .stream()  
          .map(Person::getFirstName)  
          .collect(toList());