本文章向大家介绍怎么在Java中利用Lambda将List转换成Map的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
1、告警对象定义如下:
/**
* 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、过滤代码如下:
/**
* 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遍历(遍历过程中条件判断)
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:使用流过滤,再使用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、运行结果如下:
============= 方式1 ====================
alarm2 : 2
alarm1 : 1
alarm3 : 3============= 方式2 ====================
alarm2 : 2
alarm1 : 1
alarm3 : 3
以上就是小编为大家带来的怎么在Java中利用Lambda将List转换成Map的全部内容了,希望大家多多支持亿速云!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。