Java两个String数组去重

引言

在Java编程中,我们经常会遇到需要对数组进行去重的需求。对于两个String数组,我们希望将它们合并并去除重复元素,得到一个新的数组。本文将介绍两种常见的方法来实现这个功能,并附带代码示例。同时,我们还将使用序列图来展示算法的执行过程,以便更好地理解。

方法一:使用Set集合

Set是Java中的一个接口,它的实现类可以用来存储不重复的元素。我们可以利用这个特性来实现两个String数组的去重。

代码示例:

import java.util.HashSet;
import java.util.Set;

public class ArrayDuplicateRemoval {
    public static void main(String[] args) {
        String[] array1 = {"apple", "banana", "orange"};
        String[] array2 = {"banana", "grape", "watermelon"};

        // 将数组元素添加到Set集合中,去除重复元素
        Set<String> set = new HashSet<>();
        for (String str : array1) {
            set.add(str);
        }
        for (String str : array2) {
            set.add(str);
        }

        // 将Set集合转换为数组
        String[] resultArray = set.toArray(new String[set.size()]);

        // 打印去重后的数组
        for (String str : resultArray) {
            System.out.println(str);
        }
    }
}

在上面的代码中,我们首先创建了两个String数组array1array2,分别存储了一些字符串元素。然后,我们创建了一个HashSet对象set,将array1array2中的元素添加到set中,这样就去除了重复元素。最后,我们将set转换为数组,并打印去重后的结果。

方法二:使用Java 8的Stream

Java 8引入了Stream API,它提供了一种更简洁的方式来处理集合数据。我们可以使用Stream来对两个String数组进行去重。

代码示例:

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

public class ArrayDuplicateRemoval {
    public static void main(String[] args) {
        String[] array1 = {"apple", "banana", "orange"};
        String[] array2 = {"banana", "grape", "watermelon"};

        // 将两个数组合并为一个数组
        String[] mergedArray = Stream.concat(Arrays.stream(array1), Arrays.stream(array2))
                .toArray(String[]::new);

        // 去除重复元素
        String[] resultArray = Arrays.stream(mergedArray)
                .distinct()
                .toArray(String[]::new);

        // 打印去重后的数组
        for (String str : resultArray) {
            System.out.println(str);
        }
    }
}

在上面的代码中,我们使用Stream.concat()方法将array1array2合并为一个数组mergedArray。然后,我们使用distinct()方法去除重复元素,并将结果存储在resultArray中。最后,我们打印去重后的结果。

序列图

下面是使用Mermaid语法绘制的序列图,展示了方法一和方法二的执行过程。

sequenceDiagram
    participant A as Set集合
    participant B as HashSet对象
    participant C as Stream对象

    A ->> B: 创建HashSet对象
    A ->> B: 添加元素到HashSet
    A ->> B: 去除重复元素
    A ->> B: 转换为数组

    A ->> C: 合并数组
    C ->> C: 去除重复元素
    C ->> C: 转换为数组

结论

本文介绍了两种常见的方法来对两个String数组进行去重,分别是使用Set集合和使用Java 8的Stream。代码示例清晰地展示了这两种方法的实现过程,通过序列图我们可以更好地理解算法的执行流程。在实际应用中,根据具体的需求和场景选择合适的方法来进行数组去重操作,可以提高代码的效率和可读性。希望本文对您有所帮助!

参考文献:

  • [HashSet - Java官方文档](