Java 中两个 String 类型 List 去重合并成一个

在 Java 编程中,我们经常需要处理集合数据。有时,我们可能会遇到需要将两个 List<String> 集合去重并合并成一个集合的情况。本文将介绍如何使用 Java 实现这一功能。

1. 使用 Collections 工具类

Java 提供了 Collections 工具类,它提供了多种操作集合的方法。我们可以使用 Collections.addAll() 方法将一个集合中的元素添加到另一个集合中,然后使用 Collections.sort() 方法对结果集合进行排序,最后使用 LinkedHashSet 来去除重复元素。

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

public class ListMergeExample {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("apple");
        list1.add("banana");
        list1.add("orange");

        List<String> list2 = new ArrayList<>();
        list2.add("banana");
        list2.add("apple");
        list2.add("grape");

        List<String> mergedList = new ArrayList<>();
        Collections.addAll(mergedList, list1.toArray());
        Collections.addAll(mergedList, list2.toArray());

        Set<String> uniqueSet = new LinkedHashSet<>(mergedList);
        List<String> uniqueList = new ArrayList<>(uniqueSet);

        System.out.println(uniqueList);
    }
}

2. 使用 Stream API

从 Java 8 开始,我们可以使用 Stream API 来简化集合操作。Stream API 提供了一种声明式的方式来处理集合,使得代码更加简洁易读。

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class ListMergeExample {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("apple");
        list1.add("banana");
        list1.add("orange");

        List<String> list2 = new ArrayList<>();
        list2.add("banana");
        list2.add("apple");
        list2.add("grape");

        List<String> mergedList = Stream.of(list1, list2)
                .flatMap(List::stream)
                .distinct()
                .collect(Collectors.toList());

        System.out.println(mergedList);
    }
}

3. 使用 HashSet

HashSet 是一种基于哈希表的 Set 集合,它能够保证元素的唯一性。我们可以使用 HashSet 来去除重复元素。

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ListMergeExample {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("apple");
        list1.add("banana");
        list1.add("orange");

        List<String> list2 = new ArrayList<>();
        list2.add("banana");
        list2.add("apple");
        list2.add("grape");

        Set<String> set = new HashSet<>(list1);
        set.addAll(list2);

        List<String> mergedList = new ArrayList<>(set);

        System.out.println(mergedList);
    }
}

总结

在本文中,我们介绍了三种在 Java 中将两个 List<String> 集合去重并合并成一个集合的方法。使用 Collections 工具类、Stream API 和 HashSet 都是实现这一功能的有效方法。每种方法都有其特点,可以根据实际需求选择合适的方法。

在实际开发中,选择合适的数据结构和算法对于提高代码的可读性和性能至关重要。希望本文能够帮助你更好地理解如何在 Java 中处理集合数据。