【認真讀完collector的jdk原始碼上的注釋文件】
collect:收集器
collector作為collect方法的引數
collector是乙個介面,它是乙個可變的匯聚操作,將輸入元素累積到乙個可變的結果容器中;它會在所有元素都處理完畢後,將累積的結果轉化為乙個最終的表示(這是乙個可選操作);它支援序列與並行兩種方式執行。
collectors本身提供了關於collector得常見匯聚實現,collectors本身實際上是乙個工廠。
為了確保序列與並行操作結果的等價性,collector函式需要滿足兩個條件:identity(同一性)和association(結合性)
函式式程式設計最大的特點:表示做什麼,而不是如何做。
collectors類中包含由collector介面的簡單實現類:
collectors原始檔中的內部類collectorimpl實現了collector介面:
/**
* ****** implementation class for .
** @param the type of elements to be collected
* @param the type of the result
*/static class collectorimplimplements collector
collectorimpl(suppliersupplier,
biconsumeraccumulator,
binaryoperatorcombiner,
setcharacteristics)
@override
public biconsumeraccumulator()
@override
public suppliersupplier()
@override
public binaryoperatorcombiner()
@override
public functionfinisher()
@override
public setcharacteristics()
}
一些示例應用:
@test
public void test2()
class someperson
@override
public string tostring() ';
}public string getname()
public void setname(string name)
public int getage()
public void setage(int age)
public int getheight()
public void setheight(int height)
}
重在理解,應用**實現
Java 新特性 列舉
package cn.enum.robertchao public enum color1 可以通過 列舉.內容 的形式進行取值操作。2 輸出列舉中的全部內容,可以使用foreach完成。利用foreach把列舉型別中的內容全部取出。package cn.enum.robertchao public...
java 新特性 列舉
列舉就是要某個型別的變數的取值只能是幾個固定值中的某乙個,否則,編譯器就會報錯,列舉可以讓編譯器在編譯時就可以控制程式中填寫的非法值,普通變數的方式無法實現這一目標 列舉的實現 package learn 列舉 author hui public class enumtest 在上面的類中,自己定義...
java新特性 萬用字元
在程式類中追加了泛型之後,避免了classcastexception的問題,同時又產生了引數統一化的問題。為了解決該問題,產生了新特性萬用字元,可以接受所有的泛型型別,但不能讓使用者隨意更改。該特性從jdk1.5之後出現。有以下三種常見的萬用字元 extends number 表示泛型型別只能是nu...