📅  最后修改于: 2023-12-03 15:39:13.683000             🧑  作者: Mango
在 Java 中,Vector 和 ArrayList 都是支持动态数组的数据结构。Vector 是线程安全的,而 ArrayList 则不是线程安全的。在某些情况下,你可能需要将 Vector 的元素复制到 ArrayList 中,以便更好地利用 ArrayList 的性能优势。这篇文章将介绍如何做到这一点。
最简单的方法是使用 ArrayList 的 addAll() 方法,将 Vector 的元素全部添加到 ArrayList 中。代码如下:
Vector<String> vector = new Vector<String>();
ArrayList<String> arrayList = new ArrayList<String>();
// 添加 vector 元素到 arrayList 中
arrayList.addAll(vector);
这种方法看似简单,但是需要注意的是它只适用于引用类型。如果想要复制基本数据类型的元素,它会导致类型转换错误。
为了避免方法一的问题,我们可以使用 Collections.addAll() 方法,它可以将任何类型的元素复制到 ArrayList 中。代码如下:
Vector<Integer> vector = new Vector<Integer>();
ArrayList<Integer> arrayList = new ArrayList<Integer>();
// 添加 vector 元素到 arrayList 中
Collections.addAll(arrayList, vector.toArray(new Integer[vector.size()]));
该方法接受一个可变参数,可以同时添加多个元素,因此非常适用于复制 Vector 的元素。
另一种复制元素的方法是使用 ArrayList 的构造函数,将 Vector 对象作为参数传递给构造函数。代码如下:
Vector<Character> vector = new Vector<Character>();
// 创建 arrayList 并将 vector 元素复制到其中
ArrayList<Character> arrayList = new ArrayList<Character>(vector);
由于 ArrayList 的构造函数接受 Collection 对象作为参数,因此你可以将任何 Collection 类型的对象传递给它。
本文介绍了三种将 Vector 的元素复制到 ArrayList 中的方法。使用 addAll() 是最简单的方法,但仅适用于复制引用类型的元素。如果要复制基本数据类型,可以使用 Collections.addAll() 方法。如果想要更简洁的代码,可以使用 ArrayList 的构造函数。无论使用哪种方法,你都可以更好地利用 ArrayList 的性能优势。