摘要:今天寫根過濾的時候一下子有點愣眼,先是想到用原生的循環查出來,但是覺得太,后面思考了一下可以用的,寫完了,又發現有現成的方法,這里一一列出來,供參考使用。
今天寫根過濾的時候一下子有點愣眼,先是想到用 Java 原生的 map 循環查出來,但是覺得太 low, 后面思考了一下可以用 Java8 的 Lambda,寫完了,又發現 Google Guava 有現成的方法,這里一一列出來,供參考使用。
首先提示,如果照搬我的代碼的話別忘了引這些依賴
filter by keyjunit junit 4.12 test org.hamcrest hamcrest-core org.hamcrest hamcrest-library 1.3 test com.google.guava guava 25.1-jre
public class FilterMapByKeyTest { private Mapfilter by valueWEEK = new HashMap<>(); @Before public void setUp () { WEEK.put(1, "Monday"); WEEK.put(2, "Tuesday"); WEEK.put(3, "Wednesday"); WEEK.put(4, "Thursday"); WEEK.put(5, "Friday"); WEEK.put(6, "Saturday"); WEEK.put(7, "Sunday"); } /** * Java 8之前的版本 */ @Test public void filterMapByKey () { Map map = new HashMap<>(); for (Map.Entry entry : WEEK.entrySet()) { if (entry.getKey() <= 3) { map.put(entry.getKey(), entry.getValue()); } } assertThat(map.keySet(), contains(1, 2, 3)); } /** * Java 8 Lambda */ @Test public void filterMapByKeyJava8Lambda () { Map map = WEEK.entrySet().stream().filter(r -> r.getKey() <= 3) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); assertThat(map.keySet(), contains(1, 2, 3)); } /** * Google Guava */ @Test public void filterMapByKeyGuava () { Map map = Maps.filterKeys(WEEK, r -> r <= 3); assertThat(map.keySet(), contains(1, 2, 3)); } }
public class FilterMapByValueTest { private MapWEEK = new HashMap<>(); @Before public void setUp () { WEEK.put(1, "Monday"); WEEK.put(2, "Tuesday"); WEEK.put(3, "Wednesday"); WEEK.put(4, "Thursday"); WEEK.put(5, "Friday"); WEEK.put(6, "Saturday"); WEEK.put(7, "Sunday"); } /** * Java 8之前的版本 */ @Test public void filterMapByValue () { Map map = new HashMap<>(); for (Map.Entry entry : WEEK.entrySet()) { if (entry.getValue().startsWith("S")) { map.put(entry.getKey(), entry.getValue()); } } assertThat(map.values(), contains("Saturday","Sunday")); } /** * Java 8 Lambda */ @Test public void filterMapByValueJava8Lambda () { Map map = WEEK.entrySet().stream().filter(r -> r.getValue().startsWith("S")) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); assertThat(map.values(), contains("Saturday","Sunday")); } /** * Google Guava */ @Test public void filterMapByValueGuava () { Map map = Maps.filterValues(WEEK, r -> r.startsWith("S")); assertThat(map.values(), contains("Saturday","Sunday")); } }
如果覺得內容還不錯,可以關注一下我哦
微信公眾號:志哥 (ID: zhige-me)
期待與你相遇,一同成長前行!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71413.html
摘要:可能是最流行的集合類型。它是一個范性有序的集合。一個無序并不支持重復的集合。接口繼承接口,集合中可以存放重復對象。集合類提供了,等高階函數去處理。我們聲明一個集合或者數組,可以轉換成相應類型的集合。調用轉換為可變集合。 不積跬步無以至千里,不積小流無以成江海 先看看Kotlin中for循環的遍歷 fun testList(){ var StringVal = 12_...
摘要:歡迎訪問我的歡迎訪問我的內容所有原創文章分類匯總及配套源碼,涉及等本篇概覽本篇概覽作為實戰系列的第九篇,咱們聊聊如何用修改原始請求和響應內容,以及修改過程中遇到的問題首先是修改請求,如下圖,瀏覽器是請求發起方,真實參數只有,經過網關時被塞歡迎訪問我的GitHubhttps://github.com/zq2599/blog_demos內容:所有原創文章分類匯總及配套源碼,涉及Java、Dock...
摘要:簡介注解用于修飾的方法,根據的的內容,通過適當的轉換為客戶端需要格式的數據并且寫入到的數據區,從而不通過視圖解析器直接將數據響應給客戶端。并且這些解析器都實現了接口,在接口中有四個最為主要的接口方法。 SpringMVC 細節方面的東西很多,所以在這里做一篇簡單的 SpringMVC 的筆記記錄,方便以后查看。 Spring MVC是當前最優秀的MVC框架,自從Spring 2.5版本...
閱讀 2126·2021-11-16 11:45
閱讀 1220·2021-10-22 09:53
閱讀 4018·2021-09-07 10:26
閱讀 1226·2021-09-06 15:00
閱讀 2082·2019-08-28 18:09
閱讀 2812·2019-08-26 14:06
閱讀 3983·2019-08-26 13:48
閱讀 1308·2019-08-26 12:11