迭代数组的非空元素

Iterate the non-null elements of an array

我在 Java 中有一个包含多个元素的 Array,我正在做的是迭代并显示数组中不同于 null 的所有元素。

这是Demo:

public class TestData {

    public static void main(String[] args) {

        String firstArg[] = new String[5];
        firstArg[2] = "arg2";
        firstArg[4] = "arg4";
        
        for (String a: firstArg) {
            if (a != null) {
                System.out.println(a);
            }            
        }
    }    
}

我的问题: 是否可以在一行中迭代非null的元素?

您可以先从数组中删除所有 null:

Yourlist.removeAll(Collections.singleton(null));

然后迭代

public class TestData {
  public static void main(String[] args) {
    String firstArg[] = new String[5];
    firstArg[2] = "arg2";
    firstArg[4] = "arg4";
    
    Stream.of(firstArg)
      .filter(Objects::nonNull)
      .forEach(System.out::println);
  }    
}

您可以使用 .filter(s->s!=null).

而不是 .filter(Objects::nonNull)

如果你想做的不仅仅是打印,你可以使用

  .forEach(s->{
    // Do something more with 's'
    System.out.println(s.toUpperCase());
  });

另见 Filter values only if not null using lambda in Java8