如何检查一次数组是否包含部分值?

时间:2018-11-06 20:47:27

标签: java

我有一个数组

arr = [name1 class age, name2 class age, name3 class age, name1 class age, name2 class age]

我想检查每个项目并将其存储在另一个数组中

String[] r = Arrays.stream(arr)
    .filter(s -> s.contains("name1"))
    .toArray(String[]::new);

如何使用上面的代码仅保存名字1?<​​/ p>

输出:[name1 class age, name1 class age]

预期输出:[name1 class age]

2 个答案:

答案 0 :(得分:1)

您可以映射第一个比赛

String[] array = 
  Arrays.stream(arr).filter
  (s -> s.contains("name1")).findFirst().map(s -> new String[] { s }).orElse(new String[] {});

答案 1 :(得分:1)

如果您只需要检索第一个找到的元素:

String[] r = new String[] { Arrays.stream(arr)
                                  .filter(s -> s.contains("name1"))
                                  .findFirst().orElse("") };