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

歡迎訪問 生活随笔!

生活随笔

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

java

java lambda函数_最常用的 Java 8 中的 Lambda 函数(项目中实用笔记)

發布時間:2025/3/20 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java lambda函数_最常用的 Java 8 中的 Lambda 函数(项目中实用笔记) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最常用的 Java 8 中的 Lambda 函數(項目中實用筆記)

簡介

Java 8 中的新特性,雖然現在都出到了Java14版本,不過在日常的開發過程中,8的版本是足夠使用了,再說現在的8以上的版本也都面向商業收費了,很多新手,我所接觸到的,像我那時候一樣,追求船新版本,一上來就去學java14的東西,當成一個愛好還行,重心還是要放在實用上

過濾

需求:我需要過濾高考分數大于500的人

首先,新建一個內部類

static class Student{

private String name;

private Integer score;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name!=null ? name.trim() : null;

}

public Integer getScore() {

return score;

}

public void setScore(Integer score) {

this.score = score;

}

public Student(String name, Integer score) {

this.name = name;

this.score = score;

}

@Override

public String toString() {

return "Student{" +

"name='" + name + '\'' +

", score=" + score +

"}\n";

}

}

使用IntStream遍歷快速初始化一批值

public static void main(String[] args) {

List studentList = IntStream.rangeClosed(0,20)

.mapToObj(i -> new Student("Java Pro"+i,490+i))

.collect(Collectors.toList());

}

過濾出分數大于500的并輸出

List studentGiao = studentList.stream()

.filter(student -> student.score > 500)

.collect(Collectors.toList());

System.out.println(studentGiao.toString());

輸出:

[Student{name='Java Pro11', score=501}

, Student{name='Java Pro12', score=502}

, Student{name='Java Pro13', score=503}

, Student{name='Java Pro14', score=504}

, Student{name='Java Pro15', score=505}

, Student{name='Java Pro16', score=506}

, Student{name='Java Pro17', score=507}

, Student{name='Java Pro18', score=508}

, Student{name='Java Pro19', score=509}

, Student{name='Java Pro20', score=510}

]

日常求和

需要考慮到為空和為0的情況

package com.github.gleans;

import java.util.Arrays;

import java.util.List;

import java.util.Objects;

public class LambdaLearning {

public static void main(String[] args) {

List nums = Arrays.asList(1.01, 2.11, 3.23, 4.222, null, 5.6);

double resNum = nums.stream()

.map(num -> Objects.isNull(num) ? 0 : num)

.mapToDouble(num -> num)

.sum();

System.out.println(resNum);

}

}

map是重新指向一個對象,把->右側的對象賦予,此處判斷若num為null則賦予0值

注意,這里不可給null使用filter過濾掉,否則全為null的情況,會報空指針異常

擴展計算

public static void testTwo(){

List nums = Arrays.asList(1.01, 2.11, 3.23, 4.222, null, 5.6);

DoubleSummaryStatistics number = nums.stream()

.map(num -> Objects.isNull(num) ? 0 : num)

.mapToDouble(num -> num)

.summaryStatistics();

System.out.println("最大值:"+number.getMax());

System.out.println("最小值:"+number.getMin());

System.out.println("平均值:"+number.getAverage());

}

輸出

最大值:5.6

最小值:0.0

平均值:2.6953333333333336

reduce簡單使用

public static void main(String[] args) {

testOne();

}

public static void testOne(){

List numbers = Arrays.asList(1, 2, 3, 4, 5, 6);

// 這里的 10 相當于初始值

int sum = numbers

.stream()

.reduce(10, Integer::sum);

System.out.println(sum);

}

Collectors.groupingBy

根據年齡分組

package com.github.gleans;

import java.math.BigDecimal;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import java.util.stream.Collectors;

public class SumWage {

public static void main(String[] args) {

List userDemoList = new ArrayList() {{

add(new UserDemo(20, "jason", BigDecimal.valueOf(1000000)));

add(new UserDemo(22, "yasuo", BigDecimal.valueOf(2000000)));

add(new UserDemo(22, "ekko", BigDecimal.valueOf(100)));

}};

Map> UserDemoMapByAge = userDemoList.stream()

.collect(Collectors.groupingBy(UserDemo::getAge));

System.out.println(UserDemoMapByAge.toString());

}

static class UserDemo {

private int age;

private String username;

private BigDecimal wage;

public UserDemo(int age, String username, BigDecimal wage) {

this.age = age;

this.username = username;

this.wage = wage;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public BigDecimal getWage() {

return wage;

}

public void setWage(BigDecimal wage) {

this.wage = wage;

}

@Override

public String toString() {

return "UserDemo{" +

"age=" + age +

", username='" + username + '\'' +

", wage=" + wage +

'}';

}

}

}

輸出

{20=[UserDemo{age=20, username='jason', wage=1000000}], 22=[UserDemo{age=22, username='yasuo', wage=2000000}, UserDemo{age=22, username='ekko', wage=100}]}

json化觀看觀看更為直觀

{

20:[

{

"age":20,

"username":"jason",

"wage":1000000

}

],

22:[

{

"age":22,

"username":"yasuo",

"wage":2000000

},

{

"age":22,

"username":"ekko",

"wage":100

}

]

}

進階計算 Collectors.summarizingDouble

Map userAvgWageByAge = userDemoList.stream()

.collect(Collectors.groupingBy(UserDemo::getAge, Collectors.summarizingDouble(s -> s.getWage().doubleValue())));

userAvgWageByAge.forEach((k, v) -> System.out.println(String.format("年齡:%d,平均工資:%f", k, v.getAverage())));

數組快速轉為List

Stream.of(1, 2, 3, 4).collect(Collectors.toList())

結論

后續會學習更多關于Lambda的操作,日積月累...一定會成為一個禿頭的程序猿

總結

以上是生活随笔為你收集整理的java lambda函数_最常用的 Java 8 中的 Lambda 函数(项目中实用笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国语一区 | 床戏高潮做进去大尺度视频 | 91黑人精品一区二区三区 | 国产一级高清视频 | 调教一区 | 老外一级黄色片 | 粉色视频免费 | 国内精品久久久久久久影视简单 | 天堂在线精品视频 | 天天狠天天透 | 骑骑上司妻电影 | 黄色在线视频播放 | 巨乳美女被爆操 | 欧美人妻日韩精品 | 污黄视频在线观看 | 这里精品 | 欧美日韩在线视频观看 | 日本性网站 | 国产97色在线 | 日韩 | 欧美色99| 国产一级二级三级在线观看 | 丰满人妻一区二区三区免费视频棣 | 日日夜夜骑 | 全黄一级男人和女人 | 黄色国产一级片 | 香蕉视频一级片 | 玖玖视频国产 | 黄色短视频在线播放 | 日韩黄色在线视频 | 欧美性猛交aaaa片黑人 | 色眯眯av | 99re8在线精品视频免费播放 | 免费成人在线播放 | 成人欧美一区二区三区在线播放 | 日本www在线观看 | 三级福利 | 超碰人人搞 | 91网站在线播放 | 91小仙女jk白丝袜呻吟 | 国产一区麻豆 | 麻豆传媒网站入口 | 高清无码一区二区在线观看吞精 | 色综合999 | 九色91popny蝌蚪 | 精品国产18久久久久久 | 少妇被爽到高潮动态图 | 青草草在线观看 | 91超碰在线免费观看 | 综合狠狠开心 | 久草97| 可以看av的网站 | 久久青青草视频 | 欧美专区第一页 | 欧美综合亚洲 | 国产污在线观看 | a级黄色在线观看 | 久久精品国产清自在天天线 | 日本性视频网站 | 国产一级在线播放 | 久久高清毛片 | 国产www在线| 色啊色 | 日韩免费看 | 免费一级黄色大片 | 一区二区三区天堂 | 自拍视频一区 | 国产ts人妖调教重口男 | 亚洲一区免费在线 | 久久久久二区 | 免费成人结看片 | 欧美黄色录像 | 欧美视频你懂的 | 久久经典| 婷婷中文网 | 91精品久久久久久综合五月天 | 国模杨依粉嫩蝴蝶150p | 377人体粉嫩噜噜噜 www.av黄色 | 久色福利 | 第一页在线| 亚洲h视频在线观看 | 精品乱子伦 | 黄色视屏免费 | av黄色网 | 日韩七区 | 午夜av剧场 | 中文字幕免费播放 | 久久噜噜噜精品国产亚洲综合 | 国产性xxxx高清 | 国产自产在线视频 | 欧美熟妇激情一区二区三区 | 午夜伦理影院 | 操欧美老女人 | 免费国产在线观看 | 欧美精品成人久久 | 日韩欧美国产成人精品免费 | 成人啪啪18免费游戏链接 | 99国产精品久久久久久久成人 | 激情a| 久久国产精品毛片 |