📜  如何从Java中的向量中删除重复元素?(1)

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

如何从Java中的向量中删除重复元素?

在Java中,向量(Vector)是一个可变数组,它使用数组实现,并且可以根据需要自动调整其大小。如果我们有一个向量,并且需要删除其中任何重复的元素,可以按照以下步骤操作:

使用HashSet

我们可以使用HashSet来删除重复元素。HashSet是一个无序的集合,其中不允许有重复的元素,因此将向量中的元素添加到HashSet中,会自动删除重复的元素。

import java.util.*;

public class RemoveDuplicates {

   public static void main(String[] args) {
      Vector<String> vector = new Vector<>();
      vector.add("apple");
      vector.add("banana");
      vector.add("orange");
      vector.add("apple");
      vector.add("kiwi");

      System.out.println("Original Vector: " + vector);

      // Remove duplicates using HashSet
      Set<String> set = new HashSet<>(vector);
      vector.clear();
      vector.addAll(set);

      System.out.println("Vector without duplicates: " + vector);
   }
}

此代码段创建一个带有重复元素的向量,并使用HashSet来删除重复元素。输出结果如下:

Original Vector: [apple, banana, orange, apple, kiwi]
Vector without duplicates: [kiwi, orange, banana, apple]
使用Stream API

我们还可以使用Java 8中引入的Stream API来删除向量中的重复元素。使用Stream API需要调用distinct()方法来返回一个不包含重复元素的流。我们可以将流转换回向量,以便以向量形式返回结果。

import java.util.*;
import java.util.stream.*;

public class RemoveDuplicates {

   public static void main(String[] args) {
      Vector<String> vector = new Vector<>();
      vector.add("apple");
      vector.add("banana");
      vector.add("orange");
      vector.add("apple");
      vector.add("kiwi");

      System.out.println("Original Vector: " + vector);

      // Remove duplicates using Stream API
      Vector<String> result = vector.stream()
                                     .distinct()
                                     .collect(Collectors.toCollection(Vector::new));

      System.out.println("Vector without duplicates: " + result);
   }
}

此代码段使用Stream API和collect()方法,以向量的形式返回一个未包含重复元素的流。输出结果如下:

Original Vector: [apple, banana, orange, apple, kiwi]
Vector without duplicates: [apple, banana, orange, kiwi]

以上两种方法都可以用于从向量中删除重复元素。由于HashSet是最常用的方法之一,因此在大多数情况下,建议使用HashSet。

希望这篇文章对你有所帮助!