Vector
类是List
接口的一种实现,它使我们可以创建类似于ArrayList类的可调整大小的数组。
Java向量与ArrayList
在Java中, ArrayList
和Vector
实现List
接口并提供相同的功能。但是,它们之间存在一些差异。
Vector
类同步每个单独的操作。这意味着每当我们要对向量执行某些操作时, Vector
类都会自动对该操作施加锁定。
这是因为当一个线程正在访问向量时,同时另一个线程试图访问它时,会生成一个称为ConcurrentModificationException
的异常。因此,对每个操作的这种连续使用锁使向量效率降低。
但是,在数组列表中,方法不同步。相反,它使用Collections.synchronizedList()
方法将整个列表同步。
注意:建议使用ArrayList
代替Vector
因为矢量不是线程安全的,并且效率较低。
创建向量
这是我们如何用Java创建向量。
Vector vector = new Vector<>();
此处, 类型表示链接列表的类型。例如,
// create Integer type linked list
Vector vector= new Vector<>();
// create String type linked list
Vector vector= new Vector<>();
向量方法
Vector
类还提供List
接口的可调整大小的数组实现(类似于ArrayList
类)。一些Vector
方法是:
向矢量添加元素
add(element)
-向向量添加一个元素add(index, element)
-将元素添加到指定位置addAll(vector)
-将addAll(vector)
所有元素添加到另一个向量
例如,
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector mammals= new Vector<>();
// Using the add() method
mammals.add("Dog");
mammals.add("Horse");
// Using index number
mammals.add(2, "Cat");
System.out.println("Vector: " + mammals);
// Using addAll()
Vector animals = new Vector<>();
animals.add("Crocodile");
animals.addAll(mammals);
System.out.println("New Vector: " + animals);
}
}
输出
Vector: [Dog, Horse, Cat]
New Vector: [Crocodile, Dog, Horse, Cat]
访问矢量元素
get(index)
-返回由索引指定的元素iterator()
-返回迭代器对象以顺序访问矢量元素
例如,
import java.util.Iterator;
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector animals= new Vector<>();
animals.add("Dog");
animals.add("Horse");
animals.add("Cat");
// Using get()
String element = animals.get(2);
System.out.println("Element at index 2: " + element);
// Using iterator()
Iterator iterate = animals.iterator();
System.out.print("Vector: ");
while(iterate.hasNext()) {
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
输出
Element at index 2: Cat
Vector: Dog, Horse, Cat,
删除矢量元素
remove(index)
-从指定位置移除元素removeAll()
-删除所有元素clear()
-删除所有元素。它比removeAll()
更有效
例如,
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector animals= new Vector<>();
animals.add("Dog");
animals.add("Horse");
animals.add("Cat");
System.out.println("Initial Vector: " + animals);
// Using remove()
String element = animals.remove(1);
System.out.println("Removed Element: " + element);
System.out.println("New Vector: " + animals);
// Using clear()
animals.clear();
System.out.println("Vector after clear(): " + animals);
}
}
输出
Initial Vector: [Dog, Horse, Cat]
Removed Element: Horse
New Vector: [Dog, Cat]
Vector after clear(): []
其他向量方法
Methods | Descriptions |
---|---|
set() |
changes an element of the vector |
size() |
returns the size of the vector |
toArray() |
converts the vector into an array |
toString() |
converts the vector into a String |
contains() |
searches the vector for specified element and returns a boolean result |