Java新特性(4)collect深度解析

2021-09-23 01:51:21 字數 1538 閱讀 6999

認真讀完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...