Java 8映射集合,如果集合为空,则添加默认值
发布时间:2020-12-14 05:53:31 所属栏目:Java 来源:网络整理
导读:我有一个用例,我必须返回一个至少包含1个元素的集合.传入集合可能包含0个或更多元素. 所以这可以很容易地完成 SetObjectB setOfB = collectionOfA.isEmpty() ? new HashSetObjectB() {{ add(new ObjectB()); }} : collectionOfA .stream() .map(item - new O
我有一个用例,我必须返回一个至少包含1个元素的集合.传入集合可能包含0个或更多元素.
所以这可以很容易地完成 Set<ObjectB> setOfB = collectionOfA.isEmpty() ? new HashSet<ObjectB>() {{ add(new ObjectB()); }} : collectionOfA .stream() .map(item -> new ObjectB(item)) .collect(Collectors.toSet()); 但…. 我也试图利用这个机会更好地熟悉Java 8工具和功能,所以我试着看看是否可以在没有条件测试的情况下以更类似Java 8的方式完成. 非常感谢您的意见和建议! 解决方法
我想你已经尽可能简单了.请记住,Java 8仍然是同一种语言;不要过分努力使一切功能.
我对你的代码做的一个改进是使用Collections.singleton(new ObjectB())而不是笨拙且有问题的双括号初始化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – CursorIndexOutOfBoundException:请求索引1,大小为
- 使用Java将子项转换为父问题
- java – AWT,SWT,Swing,SAF / JSR-296,JFace,NetBeans平台和
- java – 有没有办法在Camel关闭时保留飞行消息,并在后续启动
- java – 为什么我的Spring OAuth2服务器无法使用SSL自签名s
- java – 如何映射地图
- Java – ByteArrayOutputStream是否安全,没有flush()和clos
- Java多线程-处理线程的返回值
- synchronized和ReentrantLock有什么区别?有人说synchroniz
- java – 有SQL语法感知Swing组件吗?