簡體   English   中英

Java從For-Loop初始化ArrayList

[英]Java Initialize ArrayList From For-Loop

有沒有辦法將下面的兩個命令組合成一行,我使用for循環初始化ArrayList?

ArrayList<KSE> kseList = new ArrayList<KSE>();
for (KSE k : allKSEs) if (k.isKeyPress()) kseList.add(k);

變量allKSEs只是一個通用的Collection

Collection<KSE> allKSEs = KSE.parseSessionToKSE(ksListString);

在Java 8中,您可以使用新的流式語法

List<KSE> kseList = allKSEs.stream()
    .filter(KSE::isKeypress)
    .collect(Collectors.toList());

在Java 8之前,你所擁有的就是我要編寫的內容,盡管我不會將循環壓縮成一行。

如果您仍然使用Java 7,則可以使用Apache CollectionUtils,Apache BeanUtils和以下代碼:

ArrayList<KSE> kseList = CollectionUtils.select(allKSEs, new BeanPropertyValueEqualsPredicate("keyPress", true));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM