Java Lambda List轉(zhuǎn)Map代碼實(shí)例
在有些開(kāi)發(fā)場(chǎng)景,需要對(duì) List 對(duì)象列表進(jìn)行過(guò)濾處理,并將有用的數(shù)據(jù)存放到Map中。
例如:告警對(duì)象,包含告警uuid(alarmUuid) 和 設(shè)備uuid(objUuid),需要對(duì) objUuid = -1的告警進(jìn)行過(guò)濾,并將過(guò)濾后告警數(shù)據(jù)的alarmUuid和 objUuid以鍵值對(duì)的形式保存到Map中。
1、告警對(duì)象定義如下:
/** * Created by Miracle Luna on 2020/3/16 */ public class AlarmInfoResponse { private String alarmUuid; private String objUuid; public AlarmInfoResponse(String alarmUuid, String objUuid) { this.alarmUuid = alarmUuid; this.objUuid = objUuid; } public String getAlarmUuid() { return alarmUuid; } public void setAlarmUuid(String alarmUuid) { this.alarmUuid = alarmUuid; } public String getObjUuid() { return objUuid; } public void setObjUuid(String objUuid) { this.objUuid = objUuid; } @Override public String toString() { return "AlarmInfoResponse{" + "alarmUuid='" + alarmUuid + '\'' + ", objUuid='" + objUuid + '\'' + '}'; } }
2、過(guò)濾代碼如下:
/** * Created by Miracle Luna on 2020/3/16 */ public class LambdaFilterListToMap { public static void main(String[] args) { List<AlarmInfoResponse> alarmInfoResponseList = new ArrayList<>(); AlarmInfoResponse response0 = new AlarmInfoResponse("alarm0", "-1"); AlarmInfoResponse response1 = new AlarmInfoResponse("alarm1", "1"); AlarmInfoResponse response2 = new AlarmInfoResponse("alarm2", "2"); AlarmInfoResponse response3 = new AlarmInfoResponse("alarm3", "3"); alarmInfoResponseList.add(response0); alarmInfoResponseList.add(response1); alarmInfoResponseList.add(response2); alarmInfoResponseList.add(response3); // 方式1:先使用foreach遍歷(遍歷過(guò)程中條件判斷) Map<String, String> alarmObjUuidMap1 = new HashMap<>(); alarmInfoResponseList.forEach(alarmInfoResponse -> { if(!"-1".equals(alarmInfoResponse.getObjUuid())) { alarmObjUuidMap1.put(alarmInfoResponse.getAlarmUuid(), alarmInfoResponse.getObjUuid()); } }); System.out.println("============= 方式1 ===================="); alarmObjUuidMap1.forEach((alarmUuid, objUuid) -> System.out.println(alarmUuid + " : " + objUuid)); // 方式2:使用流過(guò)濾,再使用foreach遍歷 Map<String, String> alarmObjUuidMap2 = new HashMap<>(); alarmInfoResponseList.stream(). filter(alarmInfoResponse -> !"-1".equals(alarmInfoResponse.getObjUuid())). forEach(alarmInfoResponse -> alarmObjUuidMap2.put(alarmInfoResponse.getAlarmUuid(), alarmInfoResponse.getObjUuid())); System.out.println("\n============= 方式2 ===================="); alarmObjUuidMap2.forEach((alarmUuid, objUuid) -> System.out.println(alarmUuid + " : " + objUuid)); } }
3、運(yùn)行結(jié)果如下:
============= 方式1 ====================
alarm2 : 2
alarm1 : 1
alarm3 : 3============= 方式2 ====================
alarm2 : 2
alarm1 : 1
alarm3 : 3
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決IntelliJ IDEA創(chuàng)建spring boot無(wú)法連接http://start.spring.io/問(wèn)題
這篇文章主要介紹了解決IntelliJ IDEA創(chuàng)建spring boot無(wú)法連接http://start.spring.io/問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Java中的CountDownLatch同步工具類(lèi)使用解析
這篇文章主要介紹了Java中的CountDownLatch使用解析,CountDownLatch初始化的時(shí)候必須指定一個(gè)count,await方法會(huì)一直阻塞直到調(diào)用countdown方法,count為0,當(dāng)count為0時(shí),所有的等待線程都會(huì)被釋放,需要的朋友可以參考下2023-12-12使用Jenkins來(lái)構(gòu)建SVN+Maven項(xiàng)目的實(shí)現(xiàn)
這篇文章主要介紹了使用Jenkins來(lái)構(gòu)建SVN+Maven項(xiàng)目的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09SpringBoot項(xiàng)目中分頁(yè)插件PageHelper無(wú)效的問(wèn)題及解決方法
這篇文章主要介紹了解決SpringBoot項(xiàng)目中分頁(yè)插件PageHelper無(wú)效的問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06java 制作驗(yàn)證碼并進(jìn)行驗(yàn)證實(shí)例詳解
這篇文章主要介紹了java 制作驗(yàn)證碼并進(jìn)行驗(yàn)證實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04spring security國(guó)際化及UserCache的配置和使用
這篇文章主要介紹下國(guó)際化的配置及UserCache的配置及使用教程,感興趣的朋友參考下實(shí)現(xiàn)代碼吧2017-09-09pageHelper一對(duì)多分頁(yè)解決方案示例
這篇文章主要為大家介紹了pageHelper一對(duì)多分頁(yè)解決方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Java實(shí)現(xiàn)異步延遲隊(duì)列的方法詳解
目前系統(tǒng)中有很多需要用到延時(shí)處理的功能,本文就為大家介紹了Java實(shí)現(xiàn)異步延遲隊(duì)列的方法,文中的示例代碼講解詳細(xì),需要的可以參考一下2023-03-03