JDK8 lameda表達式學習例子

lameda表達式是jdk8出的內容,做爲一名老程序員,一直沒接觸。二次開發git上的一個開源項目,直接淚崩。因而趕忙補補課,直接上學習過程當中的源碼:
package xx.test.lameda;

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class LamedaMain {
public static void main(String[] args) {

List<String> list= Arrays.asList("danny","fancial","join","jack1");

     // 建立過濾條件 Predicate可支持and、or、xor組合
Predicate<String> predicate = (n)->n.startsWith("j");
Predicate<String> predicate1 = (n)->n.length()==5;

     //過濾list中字母「j」開頭的元素
System.out.println("====print start with j");
list.stream().filter(predicate).forEach(System.out::println);

     //過濾list中字節長度爲5的元素
System.out.println("=====print length is 5");
list.stream().filter(predicate1).forEach(System.out::println);

//過濾list中字母「j」開頭而且長度爲5的元素
System.out.println("=======print start with j and length is 5");
list.stream().filter(predicate.and(predicate1)).forEach(System.out::println);

//過濾list中字母「j」開頭或者長度爲5的元素 System.out.println("=======print start with j or length is 5"); list.stream().filter(predicate.or(predicate1)).forEach(System.out::println); //利用stream和map修改doubleList中元素的內容 System.out.println("=======show may operation"); List<Double> doubleList = Arrays.asList(100.0,200.0,300.0,400.0); doubleList.stream().map(n->n*0.2).forEach(System.out::println); //利用stream和reduce聚合輸出 System.out.println("========show reduce operation"); System.out.println("sum is "+doubleList.stream().map(n->n*0.2).reduce((sum,n)->sum+n).get()); List<Integer> integerList = Arrays.asList(100,200,300,400); System.out.println("max is "+integerList.stream().reduce(Integer::max).get()); System.out.println("min is "+integerList.stream().reduce(Integer::min).get()); System.out.println("sum is "+integerList.stream().reduce(Integer::sum).get()); }}
相關文章
相關標籤/搜索