迭代数组的非空元素
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
我在 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