日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java如何加载lambda_Java 8 lambda表达式引入及简单使用

發布時間:2023/12/18 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java如何加载lambda_Java 8 lambda表达式引入及简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引入

Help -> EclipseMarketplace ->?搜索Java 8 Kepler ->Java 8 support for eclipse Kepler SR2?安裝完成后需要重啟

Android Studio

在project的build.gradle文件中添加

buildscript {

dependencies {

classpath 'me.tatarka:gradle-retrolambda:3.2.5'

}

}

在app的build.gradle文件中添加

apply plugin: 'me.tatarka.retrolambda'

android {

compileOptions {

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}

}

使用

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Comparator;

import java.util.List;

import java.util.Optional;

import java.util.function.Predicate;

import java.util.stream.Collectors;

import java.util.stream.Stream;

import java.util.stream.Stream.Builder;

public class LambdaTest {

public static void main(String[] args) {

String[] str = new String[] { "Lambdas", "Lambdas", "Default Method", "Stream API", "Date and Time API" };

List strList = Arrays.asList(str);

System.out.println("---------------------------->默認遍歷");

strList.stream().forEach(item -> {

System.out.println(item);

});

System.out.println("---------------------------->默認遍歷簡化寫法");

strList.stream().forEach(System.out::println);

// limit輸出指定個數

System.out.println("limit---------------------------->");

strList.stream().limit(2).forEach(System.out::println);

// 去掉重復數據

System.out.println("distinct---------------------------->");

strList.stream().distinct().forEach(System.out::println);

// filter過濾器,篩選出符合條件的值

System.out.println("filter---------------------------->");

Predicate contain = item -> item.contains("API");// 只是用于匹配條件的如int可以用條件運算符等

strList.stream().filter(contain).forEach(System.out::println);

System.out.println("filter簡化寫法---------------------------->");

strList.stream().filter(item -> item.contains("API")).forEach(System.out::println);

System.out.println("AND---------------------------->");

Predicate contain1 = item -> item.contains("API");

Predicate contain2 = item -> item.contains("Time");

strList.stream().filter(contain1.and(contain2)).forEach(System.out::println);

System.out.println("OR---------------------------->");

strList.stream().filter(contain1.or(contain2)).forEach(System.out::println);

// 向每個字符后追加

System.out.println("map---------------------------->");

// 對Stream中包含的元素使用給定的轉換函數進行轉換操作,生成的Stream只包含轉換生成的元素。

// mapToInt,mapToLong和mapToDouble是對int、long、double進行操作的

strList.stream().map(item -> item + String.valueOf(1)).forEach(System.out::println);

// 向每個字符后追加

System.out.println("flatMap---------------------------->");

// flatMap:和map類似,不同的是其每個元素轉換得到的是Stream對象,會把子Stream中的元素壓縮到父集合

strList.stream().flatMap(item -> getCharacter(item)).forEach(System.out::println);

System.out.println("peek---------------------------->");

// peek 需調用collect

strList.stream().map(String::toUpperCase).peek(System.out::println).collect(Collectors.toList());

System.out.println("skip---------------------------->");

// 丟棄原Stream的前N個元素后剩下元素組成的新Stream

strList.stream().skip(3).forEach(System.out::println);

// 統計個數

System.out.println("count---------------------------->" + strList.stream().count());

// allMatch:是不是Stream中的所有元素都滿足給定的匹配條件

boolean allMatch1 = strList.stream().allMatch(item -> item.contains("a"));

System.out.println("allMatch-------------->" + allMatch1);

boolean allMatch2 = strList.stream().allMatch(item -> item.contains("API"));

System.out.println("allMatch-------------->" + allMatch2);

// anyMatch:Stream中是否存在任何一個元素滿足匹配條件

boolean anyMatch1 = strList.stream().anyMatch(item -> item.contains("Stream API"));

System.out.println("anyMatch-------------->" + anyMatch1);

boolean anyMatch2 = strList.stream().anyMatch(item -> item.contains("Stream API1"));

System.out.println("anyMatch-------------->" + anyMatch2);

// findFirst: 返回Stream中的第一個元素,如果Stream為空,返回空Optional

Optional findFirst = strList.stream().findFirst();

// isPresent方法用來檢查Optional實例是否有值。

if (findFirst.isPresent()) {

// 調用get()返回Optional值。如果Optional沒有值調和則拋出NoSuchElementException。

System.out.println("findFirst-------------->" + findFirst.get());

}

System.out.print("findFirst簡化寫法-------------->");

// 如果存在值,則使用該值調用,否則不執行任何操作。

strList.stream().findFirst().ifPresent(System.out::println);

// noneMatch:是不是Stream中的所有元素都不滿足給定的匹配條件

boolean noneMatch1 = strList.stream().noneMatch(item -> item.contains("Stream API"));

System.out.println("noneMatch-------------->" + noneMatch1);

boolean noneMatch2 = strList.stream().noneMatch(item -> item.contains("zzzzz"));

System.out.println("noneMatch-------------->" + noneMatch2);

System.out.println("newStrList---------------------------->");

List newStrList = strList.stream().filter(item -> item != null)

.collect(() -> new ArrayList(), (list, item) -> list.add(item), (list1, list2) -> list1.addAll(list2));

newStrList.stream().forEach(System.out::println);

System.out.println("newStrList簡化寫法---------------------------->");

List newStrList1 = strList.stream().filter(item -> item != null).collect(Collectors.toList());

newStrList1.stream().forEach(System.out::println);

System.out.println("sorted 排序---------------------------->");

// strList.stream().sorted();

strList.stream().sorted(Comparator.comparing(String::length)).forEach(System.out::println);

;

// max和min:使用給定的比較器(Operator),返回Stream中的最大|最小值

Integer[] ints = new Integer[] { 7, 2, 3, 10, 5, 1, 6, 8, 9, 4 };

List intList = new ArrayList();

intList = Arrays.asList(ints);

System.out.print("max-------------->");

intList.stream().max((o1, o2) -> o1.compareTo(o2)).ifPresent(System.out::println);

System.out.print("max簡化寫法-------------->");

// Comparable Integer.compare(int arg0, int arg1)

intList.stream().max(Integer::compare).ifPresent(System.out::println);

System.out.print("min-------------->");

intList.stream().min((o1, o2) -> o1.compareTo(o2)).ifPresent(System.out::println);

System.out.print("min簡化寫法-------------->");

// Comparable Integer.compare(int arg0, int arg1)

intList.stream().min(Integer::compare).ifPresent(System.out::println);

System.out.println("reduce單參數---------------------------->");

System.out.println(intList.stream().reduce((result, element) -> result = result + element));

System.out.println("reduce雙參數---------------------------->");

System.out.println(intList.stream().reduce(0, (result, element) -> result = result + element));

System.out.println("generate---------------------------->");

// 生成一個無限長度的Stream,其中值是隨機的。這個無限長度Stream是懶加載,一般這種無限長度的Stream都會配合Stream的limit()方法來用。

Stream.generate(Math::random).limit(2).forEach(System.out::println);

System.out.println("iterate---------------------------->");

// 也是生成無限長度的Stream,和generator不同的是,其元素的生成是重復對給定的種子值,調用用戶指定函數來生成的

Stream.iterate(12, item -> item + 1).limit(2).forEach(System.out::println);

}

public static Stream getCharacter(String s) {

Builder builder = Stream.builder();

builder.add(s);

builder.accept("1");

return builder.build();

}

}

總結

以上是生活随笔為你收集整理的java如何加载lambda_Java 8 lambda表达式引入及简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国内毛片毛片毛片毛片毛片 | 精品一区电影国产 | 落日余晖图片 | 91高清网站 | 久久视频中文字幕 | 中文字幕av免费 | 日本香蕉视频 | 浓精喷进老师黑色丝袜在线观看 | 九九啪 | 老司机一区二区 | 日韩福利在线视频 | 99re6热在线精品视频播放 | 国产成人综合在线视频 | 亚洲97 | 中国黄色片子 | xxxxwww一片 | 一区二区视频在线观看 | 成人午夜福利视频 | 国产另类ts人妖一区二区 | 色婷婷中文字幕 | 欧美精品日韩在线 | 亚洲播播 | 韩国女主播av | 高h调教冰块play男男双性文 | 亚洲黄v | 久久久久久久久久99精品 | 中文字幕亚洲精品 | 青青草在线观看视频 | 久久国产精品久久 | 黄色一级片黄色一级片 | 国产精品日韩在线观看 | 影音先锋男人站 | 高清视频在线播放 | 成人黄色电影在线 | 国产欧美日韩精品在线 | 日韩激情一区二区三区 | 1024国产在线| 欧美一区二区三区视频在线观看 | 久草网视频 | 三级色视频 | 在线天堂中文在线资源网 | 国产乱色 | 欧美99视频| 色呦呦在线看 | 日韩免费专区 | 国产av剧情一区二区三区 | 极品白嫩丰满美女无套 | 91pron在线 | 欧美三级成人 | 国产做爰免费观看 | 国产乱人伦app精品久久 | 国内毛片毛片毛片毛片毛片 | 成人精品久久 | 免费在线黄| 国产在线国偷精品免费看 | 日本一二三区不卡 | 欧美成人生活片 | 手机在线播放av | 91麻豆精品国产91久久久无需广告 | 久热精品免费视频 | www.在线| 男女性高潮免费网站 | www.日韩高清 | 熟妇熟女乱妇乱女网站 | 中出精品 | 亚洲国产视频在线观看 | 色爱综合 | 国产裸体永久免费无遮挡 | av网站在线免费看 | 色偷偷人人澡人人爽人人模 | 欧美精品在线视频观看 | 亚洲狼人伊人 | 日韩精品中文字幕一区 | av日韩av| 国产精品成人免费一区二区视频 | 涩涩屋污 | 都市激情第一页 | 99爱视频在线 | 九一亚洲精品 | 精品午夜久久 | 黄色动漫在线免费观看 | 裸体按摩www性xxxcom | 欧美群妇大交群 | 69av在线播放 | 丝袜五月天| 粉嫩av一区 | 国产亚洲区 | 91免费视频国产 | 韩国精品久久久 | 亚洲欧美高清在线 | 午夜宫 | 中国三级视频 | 亚洲国产剧情在线观看 | 齐天大性床战铁扇公主 | 丰满少妇被猛烈进入高清播放 | 人妻丰满熟妇av无码区hd | 精品国产一区二区在线 | 91色噜噜| 国产亚洲精品熟女国产成人 |