java中获取某个条件下数组的所有索引[duplicate]

z31licg0  于 2023-02-11  发布在  Java
关注(0)|答案(2)|浏览(110)
    • 此问题在此处已有答案**:

Find all indexes of a value in a List [duplicate](3个答案)
2天前关闭。
我有一个字符串列表,我想把数组中的所有索引加到一个集合中,数组中的字符串不为空,
我试着这么做:

columnNum.addAll((Collection<? extends Integer>) IntStream.range(0, row.size()).filter(i-> StringUtils.isNotEmpty(row.get(i))));

但我得到一个例外

kdfy810k

kdfy810k1#

您必须使用盒装:

var list = List.of("","a","","b");

var set = IntStream.range(0, list.size())
        .filter(i -> 
   !list.get(i).isEmpty()).boxed().collect(Collectors.toSet());
unftdfkk

unftdfkk2#

首先将流收集到ListIntStream不是Collection

columnNum.addAll(IntStream.range(0, row.size())
    .filter(i-> StringUtils.isNotEmpty(row.get(i)))
    .boxed().collect(Collectors.toList())); // or .toList() with Java 16+

相关问题