最爽无遮挡行房视频-一本大道久久东京热无码av-中文字幕av一区-高中生自慰www网站-色婷婷久久综合中文久久蜜桃av

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

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

2018-05-24 00:00:00
1469

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

  語(yǔ)法一:無(wú)參數(shù),無(wú)返回值

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

  語(yǔ)法二:有一個(gè)參數(shù),無(wú)返回值

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

  語(yǔ)法三:若有一個(gè)參數(shù),無(wú)返回值 可以不寫(xiě)小括號(hào)

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

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

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

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

  return Integer.compare(x,y);

  };

  語(yǔ)法五:若lambda體中只有一條語(yǔ)句,return 和大括號(hào)可以不寫(xiě)

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

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

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

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

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

  Consumer<T>:消費(fèi)型接口

  void accept(T t)

  Supplier(T):供給型接口

  T get();

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

  R apply(T t);

  Predicate<T>:斷言型接口

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

  主要有三種語(yǔ)法格式

  1.對(duì)象::實(shí)例方法名

  PrintStream ps1 = System.out;

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

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

  Comparator<Integer> cm = Integer::compare;

  3.類(lèi)::實(shí)例方法名

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

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

  注意:

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

  2.若lambda 參數(shù)列表中的第一參數(shù)時(shí)實(shí)例方法的調(diào)用者,而第二個(gè)參數(shù)時(shí)實(shí)例方法的參數(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的三個(gè)操作步驟:

  1.創(chuàng)建Stream

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

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

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

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

  Employee[] emps = new Employee[10];

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

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

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

  1.4創(chuàng)建無(wú)限流

  迭代

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

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

  //生成

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

  2.中間操作

  2.1 篩選與切片

  filter -- 接收l(shuí)ambda,從流中排除某些元素。

  limit -- 截?cái)嗔鳎蛊湓夭怀^(guò)給定數(shù)量

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

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

  2.2 映射

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

  3.終止操作。

?
主站蜘蛛池模板: 亚洲a∨无码一区二区| 亚洲国产成人久久综合人| 狠狠色丁香婷婷综合久久来来去| 国产精品自在在线午夜精华在线| 又色又污又爽又黄的网站| 国产成人无码a区精油按摩| av免费网站在线观看| 国产精品亚洲精品日韩己满十八小| 四虎永久在线精品免费观看视频| 国产又色又爽无遮挡免费软件| 国产成人av免费观看| 国产拍揄自揄精品视频| 中文字幕无码中文字幕有码| 激情五月婷婷| 无码av人片在线观看天堂| 欧美国产综合欧美视频| 午夜福利一区二区三区在线观看 | 亚洲爆乳精品无码一区二区| 亚洲欧美成人一区二区三区| 一色屋精品视频在线观看| 日韩精品一区二区在线观看| 精品久久久久久久久中文字幕| 国产av影片麻豆精品传媒| 成人午夜亚洲精品无码区毛片| 成人免费视频?国产免费| 99精品国产福久久久久久| 亚洲精品一区二区国产精华液| 午夜高清国产拍精品福利 | 色综合久久久无码中文字幕| 亚洲国产成人一区二区在线| 国产精品久久久久无码av色戒| 人妻内射一区二区在线视频 | 丰满少妇熟女高潮流白浆| 无码av无码天堂资源网影音先锋| 国产女主播喷水视频在线观看| 一本久道综合色婷婷五月| 国产精品盗摄!偷窥盗摄| 色老头在线一区二区三区| 99久久精品美女高潮喷水| 黑人巨茎大战欧美白妇免费| 色综合天天综合狠狠爱_ |