📜  从列表中删除重复项 - Java (1)

📅  最后修改于: 2023-12-03 15:21:56.012000             🧑  作者: Mango

从列表中删除重复项 - Java

当我们操作列表时,经常会有重复项存在。在Java中,可以使用集合类来快速删除列表中的重复项。本文将介绍几种不同的方法来删除重复项。

方法一: 使用Set

使用Set是一种简单且高效的方法。Set是一个不允许重复元素的集合,因此使用Set可以自动删除重复元素。Java中提供了HashSet类来实现Set。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");
list.add("banana");
Set<String> set = new HashSet<String>(list);
list.clear();
list.addAll(set);
System.out.println(list);

该代码会输出 ["apple", "banana", "orange"]。

方法二: 使用for循环

另一种常用的方法是使用for循环。我们遍历列表,将每个元素与列表中的其他元素进行比较,并将重复项删除。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");
list.add("banana");
for (int i = 0; i < list.size() - 1; i++) {
    for (int j = i + 1; j < list.size(); j++) {
        if (list.get(i).equals(list.get(j))) {
            list.remove(j);
            j--;
        }
    }
}
System.out.println(list);

该代码也会输出 ["apple", "banana", "orange"]。

方法三: 使用Java 8的stream()

Java 8中引入的stream()函数提供了一种函数式编程的方法来操作集合类。我们可以使用distinct()函数来快速删除重复项。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");
list.add("banana");
list = list.stream().distinct().collect(Collectors.toList());
System.out.println(list);

该代码同样输出 ["apple", "banana", "orange"]。

在实际开发中,我们需要根据具体情况选择最合适的方法来删除重复项。使用Set是最简单高效的方法,但如果我们需要保持原来的顺序,则需要使用for循环或stream()函数。