首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java从For循环初始化ArrayList

Java从For循环初始化ArrayList
EN

Stack Overflow用户
提问于 2015-04-30 06:57:55
回答 2查看 737关注 0票数 1

有没有办法将下面的两个命令合并到一行中,在这里我使用for循环初始化ArrayList?

代码语言:javascript
复制
ArrayList<KSE> kseList = new ArrayList<KSE>();
for (KSE k : allKSEs) if (k.isKeyPress()) kseList.add(k);

变量allKSEs只是一个泛型Collection

代码语言:javascript
复制
Collection<KSE> allKSEs = KSE.parseSessionToKSE(ksListString);
EN

回答 2

Stack Overflow用户

发布于 2015-04-30 07:01:00

在Java8中,您可以使用新的streaming syntax

代码语言:javascript
复制
List<KSE> kseList = allKSEs.stream()
    .filter(KSE::isKeypress)
    .collect(Collectors.toList());

在Java 8之前,您所拥有的是我要编写的内容,尽管我不会将循环压缩到一行中。

票数 3
EN

Stack Overflow用户

发布于 2015-04-30 07:19:59

如果你仍然使用Java7,你可以使用Apache CollectionUtils,Apache BeanUtils和以下代码:

代码语言:javascript
复制
ArrayList<KSE> kseList = CollectionUtils.select(allKSEs, new BeanPropertyValueEqualsPredicate("keyPress", true));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29956070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档