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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

list中抽出某一个字段的值_java8从list集合中取出某一属性的值的集合案例

發布時間:2024/3/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 list中抽出某一个字段的值_java8从list集合中取出某一属性的值的集合案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我就廢話不多說了,大家還是直接看代碼吧~

List list = new ArrayList();

Order o1 = new Order("1","MCS-2019-1123");

list.add(o1 );

Order o2= new Order("2","MCS-2019-1124");

list.add(o2);

Order o3= new Order("3","MCS-2019-1125");

list.add(o3);

List orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList());

System.out.println("輸出單號集合:"+orderNoList);

List idList=list.stream().map(Order::getId()).collect(Collectors.toList());

System.out.println(idList)

結果

輸出第一個:

["MCS-2019-1123", "MCS-2019-1124", "MCS-2019-1125"]

[1, 2, 3]

order類:

public class Order{

String id;

String orderNo;

public Order(String id, String orderNo) {

this.id = id;

this.orderNo= orderNo;

}

public String getId() {

return id;

}

public void setId(String order) {

this.id= id;

}

public String getOrderNo() {

return orderNo;

}

public void setOrderNo(String message) {

this.orderNo= orderNo;

}

}

補充知識:java8快速對list集合的篩選計算取值總結

在我們日常開發過程中,有很多場景需要對list集合進行取值篩選,以下是我對常用的一些知識點進行總結

首先,創建一個需要用到的對象,例如學生對象,有相關字段:姓名,年齡,性別

public class Student {

private String name;

private int age;

private String sex;

public Student( String name, int age,String sex) {

this.age = age;

this.name = name;

this.sex = sex;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

}

其次,對這些字段屬性進行賦值

Student s1 = new Student("小金",20,"女");

Student s2 = new Student("小宋",21,"女");

Student s3 = new Student("小張",25,"男");

Student s4 = new Student("小王",27,"男");

Student s5 = new Student("小王",30,"未知");

List list = new ArrayList<>();

list.add(s1);

list.add(s2);

list.add(s3);

list.add(s4);

list.add(s5);

1、遍歷-foreach

使用stream流進行foreach遍歷

list.stream().forEach(student->{

//處理邏輯,打印出所有學生的姓名

System.out.println(student.getName());

});

運行結果:

2、篩選list

filter函數的()里,應該放邏輯,判斷條件,將符合條件的放到resultList中

代碼如下,篩選集合中所有性別為女的學生

List resultList = list.stream().filter(student -> Objects.equals(student.getSex(),"女")).collect(Collectors.toList());

resultList.stream().forEach(student->{

System.out.println(student.getName());

});

運行結果:

3、list去重

根據性別去重

List unique = list.stream().collect(Collectors.collectingAndThen(

Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Student::getSex))), ArrayList::new));

unique.stream().forEach(student->{

System.out.println(student.getName());

});

運行結果:

4、取出list集合對象中某一個屬性

取出每個對象中的姓名組成一個新的集合

List listStr = list.stream().map(Student::getName).collect(Collectors.toList());

去重

List listNew = listStr .stream().map(Student::getName).distinct().collect(Collectors.toList());

運行結果:

5、list與map互轉,并根據某一屬性進行分組

list轉map (下方studentMap運行會報錯,因為作為key值,name不能重復,所以正式開發中應該使用唯一性id作為key值)

Map studentMap = list.stream().collect(Collectors.toMap(Student::getName, student -> student));

list轉數組

String[] listStrs = list.stream()

.filter(e -> Objects.equals(e.getSex(), "男"))

.sorted(Comparator.comparing(Student::getName))

.map(Student::getName).toArray(String[]::new);

list轉map并且分組

Map> listMap = list.stream().collect(Collectors.groupingBy(Student::getSex));

運行結果:

根據對象某些屬性,進行分組

Map studentsMap= list.stream()

.collect(Collectors.groupingBy(f -> Arrays.asList(f.getAge),f.getSex())));

map轉list

List collect = studentMap.values().stream().collect(Collectors.toList());

6、過濾屬性為空的字段

Student s6 = new Student("",30,"男");

list.add(s6);

List stringList = list.stream().map(s -> s.getName()).filter(s -> !s.isEmpty()).collect(Collectors.toList());

7、根據某一屬性進行計算

根據年齡求最大值、最小值、平均值、總和、個數

IntSummaryStatistics resultNum = list.stream().mapToInt((item)->item.getAge()).summaryStatistics();

System.out.println("max:"+resultNum.getMax());

System.out.println("min:"+resultNum.getMin());

System.out.println("sum:"+resultNum.getSum());

System.out.println("average:"+resultNum.getAverage());

System.out.println("count:"+resultNum.getCount());

運行結果:

注意:

1、求和有三種類型,mapToInt,mapToLong,mapToDouble

2、如果是Bigdecimal數值類型,則計算方法如下,(新建對象)

Frult frult1 = new Frult("西瓜",new BigDecimal(1));

Frult frult2 = new Frult("梨子",new BigDecimal(2));

List frultList = new ArrayList<>();

frultList.add(frult1);

frultList.add(frult2);

BigDecimal totalPrice = frultList.stream().map(Frult::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);

//或者用mapToInt()進行強轉(int->Bigdecimal)

結語:本人目前用到這么多,希望各位有更好的或者其它的用法給予建議與評論,有錯誤也希望能得到指正!也希望大家多多支持云海天教程。

原文鏈接:https://blog.csdn.net/Hedy17/article/details/88838801

總結

以上是生活随笔為你收集整理的list中抽出某一个字段的值_java8从list集合中取出某一属性的值的集合案例的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 无法忍受在线观看 | 国产精品亚洲色图 | 日日夜夜拍 | 成人性生交视频免费观看 | 超碰在线c | 91福利网| 制服丝袜av在线播放 | 美女色黄网站 | 亚洲一二三av | 99精品久久久 | 国产一区二区三区免费在线观看 | 粗大的内捧猛烈进出 | 欧美精品一级二级 | 日韩成人av一区 | 伊人网站在线观看 | 国产v在线观看 | 正在播放老肥熟妇露脸 | 国产精品久久久久久久久动漫 | 人妻精品一区二区三区 | 久久无码视频一区 | 免费色片 | 国产成人精品免高潮费视频 | 天天想夜夜操 | 在线观看国产一区二区三区 | 国产成人在线免费视频 | 五月六月丁香 | 日日弄天天弄美女bbbb | 日韩欧美国产一区二区 | 国产suv精品一区二区 | 黄色性网站 | 一个人在线免费观看www | 欧美嫩草 | 天天操精品 | 天天做天天爱天天爽综合网 | 日韩三级视频在线观看 | 在线看你懂得 | 亚洲视频精品 | 永久免费精品影视网站 | 欧美区亚洲区 | 一区二区免费 | 欧美激情黑白配 | 欧美日韩视频在线观看一区 | 日本少妇一区 | 青青操青青 | 黄视频在线 | 北条麻妃青青久久 | 欧洲日韩一区二区三区 | 九九九国产视频 | 天天舔天天干天天操 | 国产中文字幕在线视频 | 男女作爱网站 | 久久精品免费观看 | 制服丝袜在线视频 | 人人干干 | 精东传媒在线 | 国产第一页第二页 | 三级黄色免费网站 | 日韩三级一区二区三区 | 饥渴放荡受np公车奶牛 | 亚洲最新网址 | 婷婷四房综合激情五月 | 亚洲色图综合网 | 精品一区91| 午夜在线一区二区 | 成年人在线免费 | 国产极品91 | 日韩草逼视频 | 婷婷俺去也 | 国产一区二区成人 | 免费激情网址 | 玖玖在线精品 | 国产黑丝一区 | 一区二区三区四区不卡 | 亚洲国产精品午夜久久久 | 深夜福利麻豆 | 国产精品av在线播放 | 久久精品国产av一区二区三区 | 狼色网 | 亚洲 欧美 激情 小说 另类 | 乱中年女人伦 | 国产伦理片在线观看 | 91亚洲一区 | 午夜久久| av毛片网站 | 视频一区三区 | 欧美一级做a爰片久久高潮 久热国产精品视频 | 午夜精品一区二区三区免费视频 | 在线免费观看视频 | 涩涩亚洲 | 九色蝌蚪91 | 国产乱人乱精一区二视频国产精品 | 私密按摩massagexxx | 国产91在线播放 | 日日草天天干 | 国产午夜视频在线播放 | 男男gay同性三级 | 亚洲欧洲日韩在线 | 91视频二区| 日本午夜一级 |