58-Java Vector(向量)

58-Java Vector(向量) 福利时间如果你正在备战面试或者想要学习其他知识给大家推荐一个宝藏知识库作者整理了一些列 Java 程序员需要掌握的核心知识有需要的自取不谢。知识库地址https://farerboy.com/Java Vector向量在本教程中我们将学习Vector类以及如何使用它。我们还将学习它与ArrayList类的不同之处以及为什么我们应该改用数组列表。Vector类是List接口的一个实现它允许我们创建类似于ArrayList类的可调整大小的数组。Java向量vector与ArrayList在Java中ArrayList和Vector都实现List接口并提供相同的功能。但是它们之间存在一些差异。Vector类同步每个单独的操作。这意味着每当我们想对向量执行某些操作时Vector类就会自动对该操作应用锁。这是因为当一个线程访问一个vector时同时另一个线程试图访问它会生成一个称为ConcurrentModificationException的异常。因此对每个操作持续使用锁会降低向量的效率。但是在ArrayList中方法是不同步的。相反它使用Collections.synchronizedList()方法对整个列表进行同步。**注意**由于向量vector不是线程安全的并且效率较低因此建议使用ArrayList代替Vector。创建向量vector这是我们如何用Java创建向量vector。VectorType vector new Vector();此处Type表示vector存储的数据类型。例如//创建整数类型的vector VectorInteger vector new Vector(); //创建字符串类型的vector VectorString vector new Vector();向量vector方法Vector类还提供List接口的可调整大小的数组实现类似于ArrayList类。 一些Vector方法是向量添加元素add(element) - 向向量vector添加元素add(index, element) - 将元素添加到指定位置addAll(vector) - 将向量vector的所有元素添加到另一个向量vector例如import java.util.Vector; class Main { public static void main(String[] args) { VectorString mammals new Vector(); //使用add()方法 mammals.add(Dog); mammals.add(Horse); //使用索引号 mammals.add(2, Cat); System.out.println(Vector: mammals); // 使用 addAll() 方法 VectorString 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() - 返回迭代器对象以顺序访问矢量元素例如import java.util.Iterator; import java.util.Vector; class Main { public static void main(String[] args) { VectorString animals new Vector(); animals.add(Dog); animals.add(Horse); animals.add(Cat); // 使用 get() 方法 String element animals.get(2); System.out.println(Element at index 2: element); // 使用 iterator() IteratorString 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,删除vector元素remove(index) - 从指定位置删除元素removeAll() - 删除所有元素clear() - 删除所有元素。它比removeAll()更高效例如import java.util.Vector; class Main { public static void main(String[] args) { VectorString animals new Vector(); animals.add(Dog); animals.add(Horse); animals.add(Cat); System.out.println(Initial Vector: animals); //使用 remove() 方法 String element animals.remove(1); System.out.println(Removed Element: element); System.out.println(New Vector: animals); // 使用 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(): []向量vector其他方法方法内容描述set()更改向量的元素size()返回向量的大小toArray()将向量转换为数组toString()将向量转换为字符串contains()在向量中搜索指定的元素并返回一个布尔值