這篇文章主要講解了“java8怎么實(shí)現(xiàn)List轉(zhuǎn)map、分組、過濾等操作”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“java8怎么實(shí)現(xiàn)List轉(zhuǎn)map、分組、過濾等操作”吧!
創(chuàng)新互聯(lián)長(zhǎng)期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為臨川企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè),臨川網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
利用java8新特性,可以用簡(jiǎn)潔高效的代碼來實(shí)現(xiàn)一些數(shù)據(jù)處理。
定義1個(gè)Apple對(duì)象:
public class Apple { private Integer id; private String name; private BigDecimal money; private Integer num; public Apple(Integer id, String name, BigDecimal money, Integer num) { this.id = id; this.name = name; this.money = money; this.num = num; }}
添加一些測(cè)試數(shù)據(jù):
List
1、分組
List里面的對(duì)象元素,以某個(gè)屬性來分組,例如,以id分組,將id相同的放在一起:
//List 以ID分組 Map
2、List轉(zhuǎn)Map
id為key,apple對(duì)象為value,可以這么做:
/** * List -> Map * 需要注意的是: * toMap 如果集合對(duì)象有重復(fù)的key,會(huì)報(bào)錯(cuò)Duplicate key .... * apple1,apple12的id都為1。 * 可以用 (k1,k2)->k1 來設(shè)置,如果有重復(fù)的key,則保留key1,舍棄key2 */Map
3、過濾Filter
從集合中過濾出來符合條件的元素:
//過濾出符合條件的數(shù)據(jù)List
4.求和
將集合中的數(shù)據(jù)按照某個(gè)屬性求和:
//計(jì)算 總金額BigDecimal totalMoney = appleList.stream().map(Apple::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);System.err.println("totalMoney:"+totalMoney); //totalMoney:17.48
5.查找流中最大 最小值
Collectors.maxBy 和 Collectors.minBy 來計(jì)算流中的最大或最小值。
Optional
6.去重
import static java.util.Comparator.comparingLong;import static java.util.stream.Collectors.collectingAndThen;import static java.util.stream.Collectors.toCollection; // 根據(jù)id去重 List
感謝各位的閱讀,以上就是“java8怎么實(shí)現(xiàn)List轉(zhuǎn)map、分組、過濾等操作”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)java8怎么實(shí)現(xiàn)List轉(zhuǎn)map、分組、過濾等操作這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!