java中的Lamdba表达式和Stream

2022-02-09 17:50:09 浏览数 (1)

基于JDK 1.8

1、循环:

代码语言:javascript复制
// 以前的循环方式  
for (String player : players) {  
     System.out.print(player   "; ");  
}  
  
// 使用 lambda 表达式以及函数操作(functional operation)  
players.forEach((player) -> System.out.print(player   "; "));  
   
// 在 Java 8 中使用双冒号操作符(double colon operator)  
players.forEach(System.out::println);  

2、匿名内部类:

// 使用匿名内部类 btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); // 或者使用 lambda expression btn.setOnAction(event -> System.out.println("Hello World!"));

3、比较函数排序:

// 使用 lambda expression 排序

Comparator<String> sortByName = (String s1, String s2) -> (s1.compareTo(s2));

Arrays.sort(players, sortByName);

// 也可以采用如下形式:

Arrays.sort(players, (String s1, String s2) -> (s1.compareTo(s2)));

4、结合Stream:

//Lists是Guava中的一个工具类 List<Integer> nums = Lists.newArrayList(1,null,3,4,null,6); nums.stream().filter(num -> num != null).count();

0 人点赞