中文在线8资源库,亚洲国产一区二区三区在线观看,日日噜噜夜夜狠狠久久无码区,天天综合网天天综合色

網(wǎng)站開發(fā) APP開發(fā) 小程序開發(fā) SEO優(yōu)化 公司新聞

java8新特性之lambda表達(dá)式

2018-05-24 00:00:00
1114

  ·一.lambda表達(dá)式語法

  語法一:無參數(shù),無返回值

  ()->System.out.println("你在哪");

  語法二:有一個參數(shù),無返回值

  (x)->System.out.println(x);

  語法三:若有一個參數(shù),無返回值 可以不寫小括號

  x->System.out.println(x);

  語法四:有兩個或多個參數(shù),有返回值,lambda體中有多條數(shù)據(jù)

  Comparator<Integer> co = (x,y)->{

  System.out.println("語法四");

  return Integer.compare(x,y);

  };

  語法五:若lambda體中只有一條語句,return 和大括號可以不寫

  (x,y)->Integer.compare(x, y);

  語法六:lambda表達(dá)式中的參數(shù)類型可以不寫,編譯器會根據(jù)上下文推斷

  ·二.lambda表達(dá)式需要函數(shù)式接口的支持

  函數(shù)式接口:接口中只有一個抽象方法的接口稱為函數(shù)式接口。@FunctionalInterface可以使用判斷是否是函數(shù)式接口

  ·三.Java8內(nèi)置的四大核心函數(shù)式接口

  Consumer<T>:消費型接口

  void accept(T t)

  Supplier(T):供給型接口

  T get();

  Function<T,R>:函數(shù)型接口

  R apply(T t);

  Predicate<T>:斷言型接口

  boolen test(T t)
  ·四:·4.1方法引用

  主要有三種語法格式

  1.對象::實例方法名

  PrintStream ps1 = System.out;

  2.類::靜態(tài)方法名

  Comparator<Integer> com = (x,y)->Integer.compare(x,y);

  Comparator<Integer> cm = Integer::compare;

  3.類::實例方法名

  BiPredicate <String,String> bp = (x,y)->x.equals(y);

  BiPredicate <String,String> bp1 = String::equals;

  注意:

  1.lambda 體中調(diào)用方法的參數(shù)列表與返回值類型,要與函數(shù)式接口中的抽象方法的函數(shù)列表和返回值類型保持一致

  2.若lambda 參數(shù)列表中的第一參數(shù)時實例方法的調(diào)用者,而第二個參數(shù)時實例方法的參數(shù)時,可以使用ClassName::method

  ·4.2構(gòu)造器引用

  格式:ClassName::new

  注意:需要調(diào)用的構(gòu)造器參數(shù)列表要與函數(shù)式接口中的抽象方法的參數(shù)列表保持一致

  ·4.3數(shù)組引用

  格式:Type[]::new

  例如:

  Function<Integer,String[]>fun = (x)->new String[x];

  String[] str = fun.apply(10);

  System.out.println(str.length);

  Function<Integer,String[]>fun = String[]::new;

  String[] str = fun.apply(20);

  System.out.println(str.length);

  ·五:Stream的三個操作步驟:

  1.創(chuàng)建Stream

  1.1通過Collection系列集合提供的stream()或parallelStream()

  List<String> list = new ArrayList<>();

  Stream<String> stream1 = list.Stream();

  1.2通過Arrays中的靜態(tài)方法stream()獲取數(shù)組流

  Employee[] emps = new Employee[10];

  Stream<Employee> stream2 = Arrays.stream(emps);

  1.3通過Stream類中的靜態(tài)方法of()

  Stream<String> stream3 = String.of("aa","bb","cc");

  1.4創(chuàng)建無限流

  迭代

  Stream<Integer> stream4 = Stream.iterate(0,(x)->x+2);

  stream4.forEach(System.out::println);//無限生成

  //生成

  Stream.generate(()->Math.ramdom());

  2.中間操作

  2.1 篩選與切片

  filter -- 接收lambda,從流中排除某些元素。

  limit -- 截斷流,使其元素不超過給定數(shù)量

  skip(n)-- 跳過元素,返回一個扔掉了前n個元素的流,若流中元素不足n個,則返回一個空流,與limit(n)互補(bǔ)

  distinct- 篩選,通過流所生成元素的hashCode()和equals去除重復(fù)元素

  2.2 映射

  map -- 接收lambda,有元素轉(zhuǎn)換成其他形式或提取信息。接收一個函數(shù)作為參數(shù),該函數(shù)會被應(yīng)用到每一個元素上,并將其映射成一個新元素。

  3.終止操作。

?
毛片免费视频在线观看| 日韩欧美一区二区三区免费观看| 放荡的熟妇高清视频| 一本色道久久88综合亚洲精品| 中文字幕美人妻亅U乚一596| 久久天天躁狠狠躁夜夜不卡| 免费人成在线观看视频播放| 熟女俱乐部五十路二区AV| 国产一区AV麻豆免费观看| 久久久受WWW免费人成| 十八女人毛片A级毛片水真多| 大地资源在线观看中文第二页| 在线播放无码高潮的视频| 自拍日韩亚洲一区在线| 日本公与熄乱理在线播放| 在线观看免费人成视频播放| 99久久精品免费观看国产| 天天做天天爱夜夜爽导航| 亚洲欧洲av综合色无码| 伊人蕉久中文字幕无码专区| 国产18禁黄网站免费观看| 国产品无码一区二区三区在线| 日文中字乱码一二三区别在| 亚洲另类欧美综合久久| 国产精品vⅰdeoxxxx国产| 性videos熟女意大利| 伊人久久综合狼伊人久久| 亚洲婷婷五月综合狠狠| 车上玩弄美艳馊子高潮| 挺进大幂幂的滋润花苞御女天下| 久久夜色精品国产噜噜噜亚洲AV| 好湿好爽好疼免费视频| 欧美老人巨大XXXX做受视频| 精品无码专区亚洲| 免费无码成人AV片在线在线播放| 欧美人妻精品一区二区三区| 欧美激情肉欲高潮视频| 国产AV永久无码精品网站| 国内揄拍国内精品人妻浪潮AV| 国产成人精品福利一区二区三区| 四十如虎的丰满熟妇啪啪|