English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java フローコントロール

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 異常処理

Java リスト(List)

Java Queue(キュー)

Java Map集合

Java Set集合

Java入出力(I/O)

Java Reader/Writer

Javaの他のトピック

Java Vector(ベクター)

このチュートリアルでは、Vectorクラスとその使用方法について学びます。また、ArrayListクラスとの違いやなぜ配列リストに移行すべきかも学びます。

VectorクラスはListインターフェースの実装であり、私たちがArrayListに似たものを作成できるようにします。ArrayListクラスの可変長の配列。

Javaのvector(vector)とArrayList

Javaでは、ArrayListとVectorはListインターフェースを実装し、同じ機能を提供しますが、いくつかの違いがあります。

Vectorクラスは各操作をシンクロナイズします。これは、vectorに対して何か操作を行いたいとき、Vectorクラスが自動的にその操作にロックを適用することを意味します。

これは、一つのスレッドがvectorにアクセスしているときに、別のスレッドがアクセスしようとすると、ConcurrentModificationExceptionという異常が発生するためです。したがって、各操作に対してロックを継続的に使用することで、vectorの効率が低下します。

しかし、ArrayListではメソッドは同期されていません。代わりに、Collections.synchronizedList()メソッドを使用して全体のリストを同期しています。

注意:vectorはスレッドセーフでなく、効率が低いため、ArrayListの使用が推奨されます。

vector(vector)を作成します

これはJavaでvector(vector)を作成する方法です。

Vector<Type> vector = new Vector<>();

ここでは、Typeはvectorに格納されるデータの型を表します。例えば、

//整数型のvectorを作成します
Vector<Integer> vector= new Vector<>();
//文字列型のvectorを作成します
Vector<String> vector= new Vector<>();

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) {
        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]

vector要素にアクセスします

  • 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,

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);
        //使用 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()

指定された要素をベクター内で検索し、布尔値を返します