Java中删除数组为空的方法

在Java中,如果我们需要删除数组中的空元素,我们可以使用不同的方法来实现。本文将介绍一些常用的方法,并给出相应的代码示例。

方法一:使用集合类

一种简单的方法是将数组转换为集合类,然后使用集合类的方法来删除空元素。下面是一个示例代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayUtils {

    public static void main(String[] args) {
        // 原始数组
        String[] array = {"hello", null, "world", null, "java"};

        // 将数组转换为集合
        List<String> list = new ArrayList<>(Arrays.asList(array));

        // 删除空元素
        list.removeAll(Arrays.asList(null));

        // 转换回数组
        String[] newArray = list.toArray(new String[0]);

        // 输出结果
        System.out.println(Arrays.toString(newArray));
    }
}

上述代码首先将数组转换为集合类,然后使用集合类的removeAll方法删除空元素。最后,将集合转换回数组并输出结果。

方法二:使用循环遍历

另一种方法是使用循环遍历数组,并使用条件语句判断元素是否为空。如果为空,则将其删除。下面是一个示例代码:

import java.util.Arrays;

public class ArrayUtils {

    public static void main(String[] args) {
        // 原始数组
        String[] array = {"hello", null, "world", null, "java"};

        // 统计空元素个数
        int count = 0;
        for (String element : array) {
            if (element == null) {
                count++;
            }
        }

        // 创建新数组
        String[] newArray = new String[array.length - count];

        // 复制非空元素到新数组
        int index = 0;
        for (String element : array) {
            if (element != null) {
                newArray[index++] = element;
            }
        }

        // 输出结果
        System.out.println(Arrays.toString(newArray));
    }
}

上述代码使用两个循环,第一个循环用于统计空元素的个数,第二个循环用于复制非空元素到新数组中。最后,将新数组输出。

方法三:使用流操作

从Java 8开始,我们可以使用流操作来处理数组。可以使用Stream类的filter方法来过滤空元素,并使用toArray方法将流转换为数组。下面是一个示例代码:

import java.util.Arrays;
import java.util.stream.Stream;

public class ArrayUtils {

    public static void main(String[] args) {
        // 原始数组
        String[] array = {"hello", null, "world", null, "java"};

        // 过滤空元素
        String[] newArray = Stream.of(array)
                .filter(element -> element != null)
                .toArray(String[]::new);

        // 输出结果
        System.out.println(Arrays.toString(newArray));
    }
}

上述代码使用Stream.of方法将数组转换为流,然后使用filter方法过滤空元素。最后,使用toArray方法将流转换为数组并输出结果。

总结

本文介绍了三种常用的方法来删除Java数组中的空元素。第一种方法使用集合类的removeAll方法,第二种方法使用循环遍历和条件语句,第三种方法使用流操作。根据实际需求选择合适的方法来删除数组中的空元素。

序列图

下面是一个删除数组中空元素的示例序列图:

sequenceDiagram
    participant A as ArrayUtils
    participant L as List
    participant S as Stream

    A->>L: 将数组转换为集合
    L->>L: 删除空元素
    L-->>A: 转换回数组
    A->>S: 将数组转换为流
    S->>S: 过滤空元素
    S-->>A: 转换回数组

序列图展示了上述三种方法的执行过程,从转换数组到集合,删除空元素,再转换回数组的过程。使用流操作的方法也在序列图中进行了展示。

引用资料

  • [Java Arrays](
  • [Java