Java ベクトル
Java ベクター
このチュートリアルでは、Vector クラスとその使用方法について学習します。また、ArrayList クラスとの違いと、代わりに配列リストを使用する理由についても学びます。
Vector
クラスは List
の実装です ArrayList クラスに似たサイズ変更可能な配列を作成できるインターフェイス。
Java Vector と ArrayList
Java では、両方とも ArrayList
と Vector
List
を実装します インターフェイスであり、同じ機能を提供します。ただし、両者にはいくつかの違いがあります。
Vector
クラスは、個々の操作を同期します。これは、ベクトルに対して何らかの操作を実行したいときはいつでも Vector
クラスは自動的にその操作にロックを適用します。
これは、あるスレッドがベクターにアクセスしているときに、別のスレッドがそれにアクセスしようとすると、ConcurrentModificationException
という例外が発生するためです。 生成されます。したがって、各操作でロックを継続的に使用すると、ベクトルの効率が低下します。
ただし、配列リストでは、メソッドは同期されません。代わりに、Collections.synchronizedList()
を使用します。 リスト全体を同期するメソッド。
注: ArrayList
を使用することをお勧めします Vector
の代わりに ベクトルはスレッドセーフではなく、効率が悪いためです。
ベクターの作成
Java でベクトルを作成する方法は次のとおりです。
Vector<Type> vector = new Vector<>();
ここで、タイプ リンクされたリストのタイプを示します。たとえば、
// create Integer type linked list
Vector<Integer> vector= new Vector<>();
// create String type linked list
Vector<String> vector= new Vector<>();
ベクターのメソッド
Vector
クラスは、List
のサイズ変更可能な配列の実装も提供します。 インターフェイス (ArrayList
に似ています) クラス)。 Vector
の一部 メソッドは次のとおりです:
ベクターに要素を追加
add(element)
- ベクトルに要素を追加しますadd(index, element)
- 指定された位置に要素を追加しますaddAll(vector)
- ベクトルのすべての要素を別のベクトルに追加します
たとえば、
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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<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");
// 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: 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);
// 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(): []
その他のベクトル メソッド
メソッド | 説明 |
---|---|
set() | ベクトルの要素を変更します |
size() | ベクトルのサイズを返します |
toArray() | ベクトルを配列に変換します |
toString() | ベクターを文字列に変換します |
contains() | 指定された要素のベクトルを検索し、ブール値の結果を返します |
Java