热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用JavaStreams从HashMaps的ArrayList中获取字符串

如何解决《如何使用JavaStreams从HashMaps的ArrayList中获取字符串》经验,为你挑选了1个好方法。

我有一个数据结构 - ArrayList>这就是我需要做的 -

ArrayList> optMapList;
//populated optMapList with some code. Not to worry abt this

List values = new ArrayList();

for(HashMap entry: optMapList){
    values.add(entry.get("optValue"));
}

我们如何使用Java Streams实现相同的目标?



1> Eugene..:
 optMapList.stream()
           .filter(Objects:nonNull) // potentially filter null maps
           .map(m -> m.get("optValue"))
           .filter(Objects::nonNull) // potentially filter null values form the map 
           // .collect(Collectors.toCollection(ArrayList::new)) 
           .collect(Collectors.toList())


插入虚假的"null"检查会带来更多弊大于利.原始代码表明OP假定映射永远不会为"null",因此当这个假设不成立时代码应该大声失败,而不是静默地跳过条目.在值的情况下,我们不知道它们是否应该始终存在且非"空"或者是否可能在结果列表中具有"null"条目.在任何一种情况下,原始代码都保证源列表位置与结果列表位置匹配,插入过滤器会破坏此不变量.
推荐阅读
author-avatar
love_xiao奇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有