JavaのVectorクラスの使い方を完全ガイド!初心者でもわかるコレクションの基本
生徒
「先生、Javaで配列みたいに複数のデータを管理したいときに便利なクラスはありますか?」
先生
「Javaではjava.utilパッケージに含まれるVectorクラスを使うことで、簡単にデータをまとめて扱うことができます。」
生徒
「配列とどう違うんですか?」
先生
「配列はサイズを変えられませんが、Vectorはサイズを自動的に調整できるのが大きな特徴です。それでは詳しく見ていきましょう。」
1. Vectorクラスとは?
JavaのVectorクラスは、java.utilパッケージに含まれているコレクションクラスの一つです。可変長の配列として利用でき、要素を追加したり削除したりすると、自動的にサイズが拡張・縮小されます。Javaの初心者が最初に学ぶコレクションとしてよく登場するため、基本を理解しておくと後の学習がスムーズになります。
特にVectorクラスはスレッドセーフな設計になっており、マルチスレッド環境でも安全に利用できるという特徴があります。昔はArrayListよりも多く使われていましたが、現在はシングルスレッド環境ではArrayListが主流です。ただし、歴史的に多くのシステムで使われてきたため、既存コードを読む際にも理解が必要になります。
2. Vectorクラスの基本的な使い方
まずは基本的な宣言方法と要素の追加方法を確認しましょう。Vectorクラスはジェネリクスを使って型を指定できます。
import java.util.Vector;
public class VectorExample {
public static void main(String[] args) {
Vector<String> fruits = new Vector<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
System.out.println(fruits);
}
}
[Apple, Banana, Cherry]
このようにVectorはaddメソッドで要素を簡単に追加できます。配列のようにインデックスを使ってアクセスすることも可能です。
将来を見据えて、+αのスキルを身につけたい方へ
JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。
AIを学ぶならアイデミープレミアム3. Vectorと配列の違い
Java初心者が混乱しやすいのは「配列とVectorの違い」です。配列は宣言時にサイズを決める必要がありますが、Vectorは必要に応じてサイズが拡張されるため、あらかじめ容量を気にする必要がありません。また、配列はスレッドセーフではありませんが、Vectorはメソッドが同期化されているため、複数スレッドで同時に操作しても安全に動作します。
ただし、その分オーバーヘッドがあるため、性能重視の場面ではArrayListが選ばれることも多いです。つまり、用途に応じて使い分けるのが大切です。
4. よく使うメソッド
Vectorクラスでよく使われるメソッドをいくつか紹介します。
add(E e):要素を追加するget(int index):指定したインデックスの要素を取得するremove(int index):指定した位置の要素を削除するsize():要素数を取得するisEmpty():空かどうかを判定する
import java.util.Vector;
public class VectorMethods {
public static void main(String[] args) {
Vector<Integer> numbers = new Vector<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
System.out.println("2番目の要素: " + numbers.get(1));
numbers.remove(0);
System.out.println("削除後: " + numbers);
System.out.println("サイズ: " + numbers.size());
System.out.println("空かどうか: " + numbers.isEmpty());
}
}
2番目の要素: 20
削除後: [20, 30]
サイズ: 2
空かどうか: false
5. VectorとArrayListの比較
現代のJavaプログラミングでは、ArrayListとVectorを比較することがよくあります。ArrayListは同期化されていないため軽量で高速ですが、マルチスレッド環境で使う場合は外部で同期処理を行う必要があります。一方、Vectorは標準で同期化されているため、安全性は高いですがパフォーマンスはやや劣ります。
したがって、初心者が学ぶ際には「VectorはスレッドセーフなArrayListのようなもの」と覚えておくと理解しやすいでしょう。
6. ループ処理での利用
Vectorはループ処理でも便利に使えます。拡張for文やイテレータを使うことで、簡単に全要素を処理することができます。
import java.util.Vector;
public class VectorLoop {
public static void main(String[] args) {
Vector<String> animals = new Vector<>();
animals.add("Dog");
animals.add("Cat");
animals.add("Bird");
for (String animal : animals) {
System.out.println(animal);
}
}
}
Dog
Cat
Bird
このようにVectorは初心者でも扱いやすい構造になっています。
7. 実際の活用シーン
Vectorは最新のプロジェクトで新しく使われることは少なくなっていますが、既存の業務システムやライブラリの中にはまだ利用されているものが多くあります。そのため、Javaの基礎を学ぶ上でVectorを理解しておくことはとても大切です。例えば、マルチスレッド環境で安全にリストを扱いたい場合や、レガシーコードをメンテナンスする場合に役立ちます。
また、Javaの歴史を知る意味でもVectorを学ぶことで、ArrayListや他のコレクションが登場した背景を理解でき、より深い学習につながります。
まとめ
ここまでJavaのVectorクラスについて、基本的な使い方から、配列との違い、ArrayListとの比較、メソッド一覧、ループ処理での活用例、さらに実際の開発現場でどのように役立つのかまで幅広く学んできました。改めて整理すると、Vectorは「自動でサイズが変わる配列」であり、java.utilパッケージで提供されているコレクションクラスのひとつです。特にスレッドセーフである点は大きな特徴で、マルチスレッド環境でも安心して利用できる点が他のコレクションとの大きな違いになります。
一方で、パフォーマンス面ではやや不利になることがあるため、処理速度が重要なシステムや単一スレッドで動作するプログラムではArrayListが選ばれることが多くなっています。つまり「必ずVectorを使うべき」ではなく、目的と環境に応じて最適なクラスを選ぶ知識が求められます。既存のレガシーコードや古いシステムの保守ではVectorが今でも現役で使われている場面が多いため、理解しておくことで業務や学習で役に立つ機会は多いでしょう。
また、VectorはJava初心者が「コレクションの考え方を理解する最初の教材」としても適しており、可変長のデータ構造がどのように管理されているかを知ることで、次のステップであるList、Set、Mapなどのコレクションにもスムーズに理解を広げられます。最初は難しく感じるかもしれませんが、小さなプログラムを動かしながら少しずつ慣れていくことで、自然と応用力が身についていきます。
ここでは振り返りとして、学習の締めくくりにもう一度簡単なサンプルを掲載しておきます。さまざまなメソッドを組み合わせることで、Vectorがどのように動作するか一連の流れで確認できます。
import java.util.Vector;
public class VectorReview {
public static void main(String[] args) {
Vector<String> items = new Vector<>();
// 要素を追加
items.add("Coffee");
items.add("Tea");
items.add("Juice");
// 2番目の要素取得
System.out.println("選ばれた飲み物: " + items.get(1));
// 要素の削除
items.remove(0);
// ループ処理
for (String drink : items) {
System.out.println("メニュー: " + drink);
}
// 要素数と空判定
System.out.println("メニュー数: " + items.size());
System.out.println("空かどうか: " + items.isEmpty());
}
}
このプログラムでは、追加・取得・削除・ループ処理・状態確認といったVectorの基本的な操作をまとめて確認できます。シンプルな例ですが、基礎的な操作を押さえると徐々に大きなプログラムへ応用できるようになります。特にJavaのコレクションを学ぶうえでは「まず触って動かす」ことが理解への近道です。
生徒
「Vectorって、ただの配列が大きくなったバージョンじゃなくて、スレッドセーフで自動伸縮する便利なリストなんですね!」
先生
「その通り。特にマルチスレッドでの安全性は大きな利点だよ。ただし、その分少し動作が重くなることもあるから、場面によってArrayListと使い分けるのが大切なんだ。」
生徒
「既存システムで使われている理由もわかりました!保守や引き継ぎのときにVectorが出てきても理解できそうです。」
先生
「その理解が実務で大きな武器になるよ。次はArrayListやLinkedListとの違いも学んで、さらにコレクションの知識を深めていこう!」
この記事を読んだ人からの質問
プログラミング初心者からのよくある疑問/質問を解決します
JavaのVectorクラスとは何ですか?初心者にもわかりやすく教えてください。
JavaのVectorクラスは、java.utilパッケージに含まれる可変長の配列のようなコレクションクラスです。要素を追加・削除するとサイズが自動的に調整され、初心者でも扱いやすいのが特徴です。
Java Silver SE17(1Z0-825)の演習量を重視したい人には、 定番の問題集がこちらです。
徹底攻略 Java SE 17 Silver 問題集をAmazonで見る※ Amazonアソシエイト・プログラムを利用しています