日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java集合提取最小的日期_提取Java集合的元素-Java 8方法

發布時間:2023/12/3 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java集合提取最小的日期_提取Java集合的元素-Java 8方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java集合提取最小的日期

我們都廣泛使用了Collection類,例如List,Map及其派生版本。 每次使用它們時,我們都必須遍歷它們以找到某個元素或更新這些元素,或者找到匹配某個條件的不同元素。 考慮如下所示的人員列表:

List<Person> personList = new ArrayList<>(); personList.add(new Person('Virat', 'Kohli',22)); personList.add(new Person('Arun', 'Kumar',25)); personList.add(new Person('Rajesh', 'Mohan', 32)); personList.add(new Person('Rahul', 'Dravid', 35));

為了找出年齡大于30歲的所有Person實例,我們可以這樣做:

List<Person> olderThan30OldWay = new ArrayList<>(); for ( Person p : personList){if ( p.age >= 30){olderThan30OldWay.add(p);} } System.out.println(olderThan30OldWay);

這給了我輸出為:

[Rajesh Mohan, 32, Rahul Dravid, 35]

該代碼易于編寫,但是是否更冗長一些,尤其是在迭代部分? 我們為什么要迭代? 如果有一個API可以迭代內容并給我們最終結果,即我們給出源List并使用一系列方法調用來獲得我們正在尋找的結果List,那不是很酷嗎? 是的,這在其他語言(例如Scala,Groovy)中是可行的,它們支持傳遞閉包,也支持內部迭代。 但是Java開發人員有解決方案嗎? 是的,通過引入對Lambda Expressions(closures)的支持和增強的Collection API來利用lambda Expression支持,可以解決這個確切的問題。 不幸的消息是它將成為Java 8的一部分,并且將需要一些時間才能進入主流開發。

利用Java 8對上述情況的增強

正如我在增強Collections API以支持Lambda Expression之前所說的那樣,可以在這里閱讀有關它的更多信息。 JDK團隊沒有將所有新的API添加到Collection類中,而是創建了一個稱為“ Stream”的新概念,并在該類中添加了大多數API。 “流”是從創建它的集合中獲得的一系列元素。 要了解有關Stream類起源的更多信息,請參考此文檔 。 為了實現從使用Java 8中的增強功能開始的示例,我們將使用一些新的API,即:stream(),filter(),collect(),Collectors.toCollection()。
stream() :使用在其上調用此API的集合來創建Stream類的實例。
filter() :此方法接受一個lambda表達式,該表達式接受一個參數并返回一個布爾值。 該lambda表達式被編寫為實現Predicate類的替代。 collect() :此方法有2個重載版本。 我在這里使用的是一個Collector的實例。 此方法獲取流的內容并構造另一個集合。 此構造邏輯由收集器定義。 Collectors.toCollection() : 收藏家是一個工廠收集 。 并且toCollection()采用Lambda表達式/方法引用,該引用應返回Collection類的任何派生類的新實例。

簡要介紹所使用的API之后,讓我展示與第一個代碼示例等效的代碼:

List<Person> olderThan30 = //Create a Stream from the personListpersonList.stream().//filter the element to select only those with age >= 30filter(p -> p.age >= 30).//put those filtered elements into a new List.collect(Collectors.toCollection(() -> new ArrayList<Person>())); System.out.println(olderThan30);

上面的代碼同時使用了內部迭代和lambda表達式,使其直觀,簡潔且令人耳目一新。 如果您不熟悉Lambda表達式的概念,請查看我以前的文章 ,其中簡要介紹了Lambda表達式。

參考:從Javas 合作伙伴 Mohamed Sanaulla的Experiences Unlimited博客中提取Java集合的元素-Java 8方法 。

翻譯自: https://www.javacodegeeks.com/2013/03/extracting-the-elements-of-the-java-collection-the-java-8-way.html

java集合提取最小的日期

總結

以上是生活随笔為你收集整理的java集合提取最小的日期_提取Java集合的元素-Java 8方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。