java如何去掉数组的空元素

java如何去掉数组的空元素

作者:Joshua Lee发布时间:2026-02-27阅读时长:0 分钟阅读次数:8

用户关注问题

Q
Java中如何筛选数组中的非空元素?

在Java编程中,如果一个数组包含空元素,如何有效地筛选仅包含非空元素的新数组?

A

使用循环和集合类筛选非空元素

可以遍历原数组,将非空元素添加到一个ArrayList中,最后将ArrayList转换成数组。示例代码:

String[] original = {"a", null, "b", null, "c"};
List<String> list = new ArrayList<>();
for (String s : original) {
    if (s != null) {
        list.add(s);
    }
}
String[] filtered = list.toArray(new String[0]);

这样得到的新数组filtered就没有空元素。

Q
如何利用Java 8的Stream API去除数组中的空元素?

我想用Java 8的Stream功能简化代码,有什么办法用流操作从数组中去除null元素吗?

A

使用Stream过滤null并收集为数组

Java 8引入了Stream API,可以方便地过滤数组中的null元素。示例如下:

String[] original = {"a", null, "b", null, "c"};
String[] filtered = Arrays.stream(original)
                          .filter(Objects::nonNull)
                          .toArray(String[]::new);

此代码通过过滤掉所有null值生成新的数组filtered,代码简洁且易读。

Q
Java数组中空字符串与null的区别及处理方式是什么?

当数组元素是空字符串("")和null时,这两者有什么不同?如果想去除数组内这两类“空”元素,应该怎么做?

A

区分空字符串和null及双重过滤方法

null表示元素根本没有引用对象,而空字符串是长度为0的字符串对象。在处理数组时,如果需要去掉这两种元素,可以同时过滤这两种情况。示例:

String[] original = {"a", "", null, "b", "", null, "c"};
String[] filtered = Arrays.stream(original)
                          .filter(s -> s != null && !s.isEmpty())
                          .toArray(String[]::new);

该代码确保了返回数组既没有null也没有空字符串。