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...