list stream reduce的使用例項

2021-10-06 12:57:01 字數 2658 閱讀 4055

stream中的reduce的主要作用就是stream中元素進行組合,組合的方式可以是加減乘除,也可以是拼接等,接下來我們就通過例項來看一下reduce的用法:

reduce一共有三種實現:

1、t reduce(t identity, binaryoperator accumulator);

該實現有起始值 identity, 起始值的型別決定了返回結果的型別,通過 accumulator 操作最終得到 identity 型別的返回結果

2、optionalreduce(binaryoperator accumulator);

該實現只有乙個引數 accumulator , 由於沒有辦法確定具體的返回結果,所以該方法返回的是 optional

3、u reduce(u identity, bifunctionaccumulator, binaryoperatorcombiner);

該方法有三個引數 identity 、 accumulator 、combiner ,該方法通過 identity 和 accumulator的處理得出最終結果,結果和第乙個引數的型別相同

首先把我們下面操作的這個實體物件先放在這裡:

pulbic class

user

public

void

setid

(long id)

public

intgetage()

public

void

setage

(int age)

public string getclasses()

public

void

setclasses

(string classes)

@override

public string tostring()

';}

list

userlist =

newarraylist

<

>()

; user user1 =

newuser()

; user1.

setage(10

);userlist.

add(user1)

; user user2 =

newuser()

; user2.

setage(20

);userlist.

add(user2)

; user user3 =

newuser()

; user3.

setage(25

);userlist.

add(user3)

;int agesumthree = userlist.

stream()

.map

(user:

:getage)

.reduce(0

, integer:

:sum)

; system.out.

println

("agesumthree: "

+ agesumthree)

;int agesumfive = userlist.

stream()

.map

(user:

:getage)

.reduce

(integer:

:sum)

.orelse(0

);system.out.

println

("agesumfive: "

+ agesumfive)

;int agesumone = userlist.

stream()

.collect

(collectors.

summingint

(user:

:getage));

system.out.

println

("agesumone"

+ agesumone)

;int agesumfour = userlist.

stream()

.maptoint

(user:

:getage)

.sum()

; system.out.

println

("agesumfour: "

+ agesumfour)

;

public

static

void

main

(string[

] args)

public

static

void

main

(string[

] args)

public

static

void

main

(string[

] args)

關於reduce處理的中間過程,可以下檢視下面的這篇博文,寫的非常不錯:

Response AddHeader使用例項收集

response.addheader refresh 60 url newpath newpage.asp 這等同於客戶機端元素 頁面轉向 response.status 302 object moved response.addheader location newpath newpage.asp...

使用ServletFileUpload實現上傳

1.首先我們應該為上傳的檔案建乙個存放的位置,一般位置分為臨時和真是資料夾,那我們就需要獲取這倆個資料夾的絕對路徑,在servlet中我們可以這樣做 然後建立檔案工廠即倉庫乙個引數表示存放多大後flush,fileitemfactory factory new diskfileitemfactory...

使用ServletFileUpload實現上傳

1.首先我們應該為上傳的檔案建乙個存放的位置,一般位置分為暫時和真是目錄,那我們就須要獲取這倆個目錄的絕對路徑,在servlet中我們能夠這樣做 然後建立檔案工廠即倉庫乙個引數表示存放多大後flush,fileitemfactory factory new diskfileitemfactory c...