【问题标题】:Get all indexes of an array with a certain condition in java在java中获取具有特定条件的数组的所有索引
【发布时间】:2023-02-08 23:06:19
【问题描述】:

我有一个字符串列表,我想将字符串不为空的数组中的所有索引添加到集合中,

我试过这样做:

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

但我得到一个例外

【问题讨论】:

  • 什么具体的你有例外吗?

标签: java


【解决方案1】:

首先将流收集到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+

【讨论】:

    【解决方案2】:

    你必须使用盒装:

    var list = List.of("","xx","","aa");
    var set = new HashSet<>();
    
    set.addAll(IntStream.range(0, list.size())
            .filter(i -> !list.get(i).isEmpty()).boxed().collect(Collectors.toSet()));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      • 2014-04-27
      相关资源
      最近更新 更多