第 12 篇 java 8 用流分析資料 分割槽

2021-08-29 15:54:09 字數 1268 閱讀 9437

/**

* 分割槽:

* 分割槽是分組的特殊情況:由乙個謂詞(返回乙個布林值的函式)作為分類函式,它稱分割槽函

* 數。分割槽函式返回乙個布林值,這意味著得到的分組map的鍵型別是boolean,於是它最多可以

* 分為兩組——true是一組,false是一組

*/public class demo01

/*** 如果你是素食者或是請了一位素食的朋友來共

* 進晚餐,可能會想要把選單按照素食和非素食分開

*/public static void test01(listmenues) else

}/**

* 分割槽的優勢:

* 分割槽的好處在於保留了分割槽函式返回true或false的兩套流元素列表。在上乙個例子中,要

* 得到非素食dish的list,你可以使用兩個篩選操作來訪問partitionedmenu這個map中false

* 鍵的值:乙個利用謂詞,乙個利用該謂詞的非。而且就像你在分組中看到的,partitioningby

* 工廠方法有乙個過載版本,可以像下面這樣傳遞第二個收集器:

* 先按照素食主義者進行分割槽,再在每個區中按照菜的型別進行分組

*/public static void test02(listmenues)

/*** 再舉乙個例子,你可以重用前面的**來找到素食和非素

* 食中熱量最高的菜:

*/public static void test03(listmenues) ], true=optional[dish]}

//, true=dish}

}/**

* 我們在本節開始時說過,你可以把分割槽看作分組一種特殊情況。 groupingby 和

* partitioningby收集器之間的相似之處並不止於此;你在下乙個測驗中會看到,還可以按照以往的分組類似的方式進行多級分割槽;

* 看看幾個簡單的例子:

* 答案:

* (1) 這是乙個有效的多級分割槽,產生以下二級map:

* ,* true=}

* (2) 這無法編譯,因為partitioningby需要乙個謂詞,也就是返回乙個布林值的函式。

* 方法引用dish::gettype不能用作謂詞。

* (3) 它會計算每個分割槽中專案的數目,得到以下map:

* */

public static void test04(listmenu)

}

git hub :

Java 8 並行流 序列流

2 容器操作 3 容器 rootfs 命令 4 映象倉庫 5 本地顯像管理 6 info version 當docker run建立容器時,docker的標準操作包括 利用映象建立並啟動乙個容器 分配乙個檔案系統,並在唯讀的映象層外面掛載一層可讀寫層 從宿主主機配置的網橋介面中橋接乙個虛擬介面到容器...

Java8之Stream流代替For迴圈

stream流代替for迴圈進行輸出可以使 更簡潔。需求 根據姓名獲取員工資訊 1.建立實體類 emp public class emp public string getid public void setid string id public string getname public void...

用java8的LocalDate實現最近幾個月查詢

今天又得到了大佬的關愛,大佬教我用localdate long num 6l 最近幾個月 月份 localdate end localdate.now minusmonths 1 起始時間 localdate start end.minusmonths num localdate firstday ...