Java8實(shí)現(xiàn)對(duì)List<Integer>的求和
Java8對(duì)List<Integer>的求和
想要用流對(duì)List<Integer>進(jìn)行求和,但查找完資料都是對(duì)List<Object>中Object中的某個(gè)字段進(jìn)行求和,就像這樣:
long sum = list.stream().mapToLong(User::getAge).sum();
而我list中本身存的就是基本類(lèi)型的數(shù)字,并不適用。后來(lái)在IBM開(kāi)發(fā)者社區(qū)中找答案:
long sum = list.stream().reduce(Integer::sum).orElse(0);
看來(lái)對(duì)流操作還是不太熟。
解釋List<Integer> list = new ArrayList<Integer>()
List<Integer> list = new ArrayList<Integer>()
List< Integer>
List是一個(gè)接口
<>表示了List里面放的對(duì)象是什么類(lèi)型的,這樣寫(xiě)就表示了,你List里面放的必須是Integer類(lèi)型的
關(guān)于 integer
- int是java提供的8種原始數(shù)據(jù)類(lèi)型之一。
- Java為每個(gè)原始類(lèi)型提供了封裝類(lèi),Integer是java為int提供的封裝類(lèi)。int的默認(rèn)值為0,而Integer的默認(rèn)值為null
- Integer提供了多個(gè)與整數(shù)相關(guān)的操作方法,例如,將一個(gè)字符串轉(zhuǎn)換成整數(shù),Integer中還定義了表示整數(shù)的最大值和最小值的常量。
關(guān)于ArrayList
ArrayList類(lèi)是一個(gè)特殊的數(shù)組–動(dòng)態(tài)數(shù)組。通過(guò)添加和刪除元素,就可以動(dòng)態(tài)改變數(shù)組的長(zhǎng)度。
優(yōu)點(diǎn):
- 1、支持自動(dòng)改變大小
- 2、可以靈活的插入元素
- 3、可以靈活的刪除元素
局限:
比一般的數(shù)組的速度慢一些;
ArrayList是List接口的一個(gè)實(shí)現(xiàn)類(lèi)。
ArrayList類(lèi)是繼承AbstractList抽象類(lèi)和實(shí)現(xiàn)List接口的一個(gè)實(shí)現(xiàn)類(lèi)。
因此,List接口不能被構(gòu)造,也就是我們說(shuō)的不能創(chuàng)建實(shí)例對(duì)象,但是我們可以像下面那樣為L(zhǎng)ist接口創(chuàng)建一個(gè)指向自己的對(duì)象引用,而ArrayList實(shí)現(xiàn)類(lèi)的實(shí)例對(duì)象就在這充當(dāng)了 這個(gè)指向List接口的對(duì)象引用。
這句代碼的目的是可以調(diào)用
List接口里面的內(nèi)置函數(shù),add,get等方法;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot 跨域配置類(lèi)及跨域請(qǐng)求配置
這篇文章主要介紹了springboot 跨域配置類(lèi)及跨域請(qǐng)求配置,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01通過(guò)面試題解析 Java 類(lèi)加載機(jī)制
類(lèi)加載是 Java 語(yǔ)言的一個(gè)創(chuàng)新,也是 Java 語(yǔ)言流行的重要原因之一。它使得 Java 類(lèi)可以被動(dòng)態(tài)加載到 Java 虛擬機(jī)中并執(zhí)行。下面小編和大家來(lái)一起學(xué)習(xí)一下吧2019-05-05Java內(nèi)部類(lèi)持有外部類(lèi)導(dǎo)致內(nèi)存泄露的原因與解決方案詳解
這篇文章主要為大家詳細(xì)介紹了Java因?yàn)閮?nèi)部類(lèi)持有外部類(lèi)導(dǎo)致內(nèi)存泄露的原因以及其解決方案,文中的示例代碼講解詳細(xì),希望對(duì)大家有所幫助2022-11-11使用eclipse 實(shí)現(xiàn)將springboot項(xiàng)目打成jar包
這篇文章主要介紹了使用eclipse 實(shí)現(xiàn)將springboot項(xiàng)目打成jar包的流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07spring cloud 使用Zuul 實(shí)現(xiàn)API網(wǎng)關(guān)服務(wù)問(wèn)題
這篇文章主要介紹了spring cloud 使用Zuul 實(shí)現(xiàn)API網(wǎng)關(guān)服務(wù)問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05運(yùn)用Spring?Aop+注解實(shí)現(xiàn)日志記錄
我們都知道Spring框架的兩大特性分別是 IOC (控制反轉(zhuǎn))和 AOP (面向切面),這個(gè)是每一個(gè)Spring學(xué)習(xí)視頻里面一開(kāi)始都會(huì)提到的,這里,如果我們使用Aop來(lái)記錄日志,那是再好不過(guò)了,感興趣的朋友跟隨小編一起學(xué)習(xí)下Spring?Aop注解實(shí)現(xiàn)日志記錄的過(guò)程吧2022-01-01springboot+springsecurity+mybatis+JWT+Redis?實(shí)現(xiàn)前后端離實(shí)戰(zhàn)教程
這篇文章主要介紹了springboot+springsecurity+mybatis+JWT+Redis?實(shí)現(xiàn)前后端離實(shí)戰(zhàn)教程,需要的朋友可以參考下2024-01-01