如何在 Java 中移除向量中的重复元素?
使用链接的哈希集和树集,删除重复的元素。因为 LinkedHashSet 和 TreeSet 不接受重复的元素。
例:
Input : vector = [1, 2, 3, 4, 2, 4]
Output: vector = [1, 2, 3, 4]
Input : vector = [a, b, a, c, d, a]
Output: vector = [a, b, c, d]
方法 1:使用 LinkedHashSet
LinkedHashSet 不接受重复元素,也不维护排序顺序。
- 创建矢量并在矢量中添加元素。
- 创建 LinkedHashSet,并将向量对象传递给 LinkedHashSet 的构造函数。
- 清除向量的所有元素。
- 将向量中 LinkedHashSet 的所有元素相加。
下面是上述方法的实现:
T3】JavaT5
// Java Program to remove duplicate
// elements from Vector
import java.util.LinkedHashSet;
import java.util.Vector;
public class GFG {
public static void main(String[] args)
{
Vector<Integer> vector = new Vector<Integer>();
vector.add(2);
vector.add(2);
vector.add(4);
vector.add(2);
vector.add(3);
vector.add(2);
vector.add(1);
// display original elements
System.out.println("Display original Vector - "
+ vector);
// convert Vector to a LinkedHashSet object.
LinkedHashSet<Integer> hashSet
= new LinkedHashSet<Integer>(vector);
// clear all elements of vector
vector.clear();
// add all unique elements LinkedHashSet to the
// vector
vector.addAll(hashSet);
// display vector after removing duplicate elements
System.out.println(
"After removing duplicate elements - "
+ vector);
}
}
T6T8输出T1
时间复杂度: O(N),其中 N 为原始向量的长度。
方法 2:树集合
TreeSet 不接受重复的元素,TreeSet 保持排序顺序。
- Create a vector and add elements to the vector.
- Create a tree set, and pass the vector object to the constructor of the tree set.
- Clear all elements of the vector.
- Add all elements of TreeSet in the vector.
下面是上述方法的实现:
T3】JavaT5
// Java Program to remove duplicate
// elements from Vector
import java.util.TreeSet;
import java.util.Vector;
public class GFG {
public static void main(String[] args)
{
// create vector
Vector<Integer> vector = new Vector<Integer>();
// add elements in vector
vector.add(4);
vector.add(2);
vector.add(3);
vector.add(1);
vector.add(3);
vector.add(2);
vector.add(4);
// display original vector
System.out.println("Display original Vector - "
+ vector);
// convert Vector to a TreeSet object.
TreeSet<Integer> treeSet
= new TreeSet<Integer>(vector);
// clear all elements of vector
vector.clear();
// add all unique elements of TreeSet to the vector
vector.addAll(treeSet);
// display vector after removing duplicate elements
System.out.println(
"After removing duplicate elements - "
+ vector);
}
}
T6T8输出T1
时间复杂度: O(n log n),因为 TreeSet 使用红黑树实现。
版权属于:月萌API www.moonapi.com,转载请注明出处