English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、Vectorクラスとその使用方法について学びます。また、ArrayListクラスとの違いやなぜ配列リストに移行すべきかも学びます。
VectorクラスはListインターフェースの実装であり、私たちがArrayListに似たものを作成できるようにします。ArrayListクラスの可変長の配列。
Javaでは、ArrayListとVectorはListインターフェースを実装し、同じ機能を提供しますが、いくつかの違いがあります。
Vectorクラスは各操作をシンクロナイズします。これは、vectorに対して何か操作を行いたいとき、Vectorクラスが自動的にその操作にロックを適用することを意味します。
これは、一つのスレッドがvectorにアクセスしているときに、別のスレッドがアクセスしようとすると、ConcurrentModificationExceptionという異常が発生するためです。したがって、各操作に対してロックを継続的に使用することで、vectorの効率が低下します。
しかし、ArrayListではメソッドは同期されていません。代わりに、Collections.synchronizedList()メソッドを使用して全体のリストを同期しています。
注意:vectorはスレッドセーフでなく、効率が低いため、ArrayListの使用が推奨されます。
これはJavaでvector(vector)を作成する方法です。
Vector<Type> vector = new Vector<>();
ここでは、Typeはvectorに格納されるデータの型を表します。例えば、
//整数型のvectorを作成します Vector<Integer> vector= new Vector<>(); //文字列型のvectorを作成します Vector<String> vector= new 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) { Vector<String> mammals= new Vector<>(); //使用add()方法 mammals.add("Dog"); mammals.add("Horse"); //使用索引号 mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // 使用 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]
get(index) - インデックスで指定された要素を返します
iterator() - イテレーターオブジェクトを返して、ベクター要素を順序でアクセスします
例えば、
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"); // 使用 get() メソッド String element = animals.get(2); System.out.println("Element at index ", 2: " + element); // 使用 iterator() Iterator<String> iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
出力結果
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<String> 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(): []
メソッド | 内容説明 |
---|---|
set() | ベクターの要素を変更します |
size() | ベクターのサイズを返します |
toArray() | ベクターを配列に変換します |
toString() | ベクターを文字列に変換します |
contains() | 指定された要素をベクター内で検索し、布尔値を返します |