一、介紹Java8 Stream
Java8 Stream流是一種處理數(shù)據(jù)集合的方式,它可以對(duì)集合進(jìn)行一系列的操作,包括過(guò)濾、映射、排序等,從而實(shí)現(xiàn)對(duì)集合中元素的處理和轉(zhuǎn)換。Stream流是一種惰性求值的方式,只有在需要返回結(jié)果時(shí)才會(huì)執(zhí)行實(shí)際操作,這種方式可以提高程序的性能。
1.1 主要特點(diǎn)
-
延遲執(zhí)行:Stream流中的操作并不會(huì)立即執(zhí)行,只有在遇到終止操作時(shí)才會(huì)觸發(fā)執(zhí)行。
-
多次使用:同一個(gè)Stream流可以進(jìn)行多個(gè)操作,并且每個(gè)操作都是獨(dú)立的,不會(huì)影響其他操作。
-
鏈?zhǔn)秸{(diào)用:Stream流中的操作可以進(jìn)行鏈?zhǔn)秸{(diào)用,使代碼更加簡(jiǎn)潔易懂。
-
并行執(zhí)行:Stream流可以進(jìn)行并行操作,提高程序的性能。
1.2 主要操作
-
filter:對(duì)集合中的元素進(jìn)行過(guò)濾,返回符合條件的元素。
-
map:對(duì)集合中的元素進(jìn)行映射,返回映射后的元素集合。
-
distinct:去重操作,返回不重復(fù)的元素集合。
-
sorted:排序操作,返回按照指定規(guī)則排序后的集合。
-
limit:限制集合元素的數(shù)量,只返回指定數(shù)量的元素。
-
forEach:遍歷集合中的元素。
-
reduce:對(duì)集合中的元素進(jìn)行歸納操作,返回一個(gè)值。
-
collect:將集合中的元素轉(zhuǎn)換為另一個(gè)集合類(lèi)型,比如List、Set、Map等。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-666131.html
上面介紹了Java8 Stream流的特點(diǎn)和操作,下面我們來(lái)實(shí)操一下文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-666131.html
二、常見(jiàn)操作
2.1 創(chuàng)建新數(shù)組
List<Fruit> newList = fruits.stream()
.map(f -> new Fruit(f.getId(), f.getName() + "s", f.getCountry()))
.collect(Collectors.toList())
2.2 篩選數(shù)組
Map<Boolean, List<TransferData>> preAvg = list.stream()
.collect(Collectors.groupingBy(x -> x.getStatus() != 3));
List<TransferData> trueList = preAvg.get(true);
2.3 篩選數(shù)組2
List<TypeAttribute> result = list.stream().filter((e) ->
e.getIsDeleted() != 1
).collect(Collectors.toList());
2.4 篩選不為空
list.stream().filter(e -> StringUtils.isNotBlank(e.getUrl())).collect(Collectors.toList())
2.5 數(shù)組移除指定元素
dictList.removeIf(e->e.getDictKey().equals("10") );
2.6 List數(shù)組求和
long zsSum = zs.stream().reduce(Integer::sum).orElse(0);
2.7 初始化list
List<Integer> list = Stream.of(1, 2, 3).collect(Collectors.toList());
2.8 針對(duì)某個(gè)屬性對(duì)倒序
List<TransferData> sList = trueList.stream().sorted(Comparator.comparing(TransferData::getCreateTime).reversed()).collect(Collectors.toList());
List<TransferData> falseList = preAvg.get(false);
2.9 獲取數(shù)組對(duì)象的所有id
List<Long> delIds = delList.stream().map(TypeAttribute::getId).collect(Collectors.toList());
到了這里,關(guān)于Java8 Stream流常見(jiàn)操作--持續(xù)更新中的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!