在本教程中,我们将学习Vector类以及如何使用它。 我们还将学习它与ArrayList类的不同之处,以及为什么我们应该改用ArrayList。
Vector类是List接口的实现,它使我们可以创建类似于 ArrayList 类的可调整大小的数组。
Java Vector与ArrayList
在 Java 中,ArrayList和Vector都实现List接口并提供相同的功能。 但是,它们之间存在一些差异。
Vector类同步每个单独的操作。 这意味着,每当我们要对Vector执行某些操作时,Vector类都会自动对该操作施加锁定。
这是因为当一个线程正在访问Vector时,同时另一个线程试图访问它时,会生成一个称为ConcurrentModificationException的异常。 因此,对于每个操作的这种连续使用锁使Vector的效率降低。
但是,在ArrayList中,方法不同步。 相反,它使用Collections.synchronizedList()方法来同步整个列表。
注意:建议使用ArrayList代替Vector,因为Vector不是线程安全的,并且效率较低。
创建Vector
这是我们如何用 Java 创建Vector。
Vector<Type> vector = new Vector<>();
在此,Type表示链表的类型。 例如,
// create Integer type linked listVector<Integer> vector= new Vector<>();// create String type linked listVector<String> vector= new Vector<>();
Vector方法
Vector类还提供List接口的可调整大小的数组实现(类似于ArrayList类)。 一些Vector方法是:
向Vector添加元素
add(element)- 向Vector添加元素add(index, element)- 将元素添加到指定位置addAll(vector)- 将Vector的所有元素添加到另一个Vector
例如,
import java.util.Vector;class Main {public static void main(String[] args) {Vector<String> mammals= new Vector<>();// Using the add() methodmammals.add("Dog");mammals.add("Horse");// Using index numbermammals.add(2, "Cat");System.out.println("Vector: " + mammals);// Using addAll()Vector<String> 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]
访问Vector元素
get(index)- 返回由索引指定的元素iterator()- 返回迭代器对象以顺序访问Vector元素
例如:
import java.util.Iterator;import java.util.Vector;class Main {public static void main(String[] args) {Vector<String> 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<String> iterate = animals.iterator();System.out.print("Vector: ");while(iterate.hasNext()) {System.out.print(iterate.next());System.out.print(", ");}}}
输出:
Element at index 2: CatVector: Dog, Horse, Cat,
删除Vector元素
remove(index)- 从指定位置移除元素removeAll()- 删除所有元素clear()- 删除所有元素。 比removeAll()更有效
例如:
import java.util.Vector;class Main {public static void main(String[] args) {Vector<String> 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: HorseNew Vector: [Dog, Cat]Vector after clear(): []
其他Vector方法
| 方法 | 内容描述 |
|---|---|
set() |
更改Vector的元素 |
size() |
返回Vector的大小 |
toArray() |
将Vector转换为数组 |
toString() |
将Vector转换为字符串 |
contains() |
在Vector中搜索指定的元素并返回布尔结果 |
