Javaベクタークラス:初心者のガイド
はじめに
こんにちは、未来のJavaプログラマー!今日は、Javaベクタークラスの素晴らしい世界に飛び込んでいきましょう。まだ一度もコードを書いたことがなくても心配しないでください - 私はあなたの友好的なガイドとして、これまでの教えの年月の中で数えきれないくらいの学生たちにすでにガイドをしたことがあります。
パーティーを開く際、すべてのゲストを追跡するためにリストを整理するということを想像してみてください。それは基本的にJavaでのベクターの役割です - 必要に応じて伸びたり縮んだりできる動的なリストです。かなり便利でしょう?
クラス宣言
Javaでベクターを宣言する方法を始めましょう。思ったよりも簡単です!
import java.util.Vector;
Vector<String> guestList = new Vector<String>();
この例では、guestList
という名前のベクターを作成し、Stringオブジェクト(この場合、パーティーのゲストの名前)を保持するようにしています。<String>
の部分は、ベクターに保存するオブジェクトの型をJavaに伝えます。
クラスコンストラクタ
次に、ベクターを作成する異なる方法を見ていきましょう。それは、どれだけ大きなパーティーを開くかを選ぶようなものです!
// デフォルトコンストラクタ
Vector<Integer> v1 = new Vector<>();
// 初期キャパシティを持つコンストラクタ
Vector<Integer> v2 = new Vector<>(10);
// 初期キャパシティとキャパシティインクリメントを持つコンストラクタ
Vector<Integer> v3 = new Vector<>(10, 5);
// 他のコレクションからのコンストラクタ
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
Vector<Integer> v4 = new Vector<>(list);
これらのコンストラクタはそれぞれ異なる方法でベクターを作成します:
- デフォルトコンストラクタは空のベクターを作成します。
- 二つ目は初期キャパシティ10のベクターを作成します。
- 三つ目は初期キャパシティ10のベクターを作成し、必要に応じて5ずつ増やすようにします。
- 最後のものは既存のコレクション(この場合、ArrayList)からベクターを作成します。
クラスメソッド
ベクタークラスには、ユーティリティが満載のメソッドがあります。最も一般的なものをいくつか見ていきましょう:
メソッド | 説明 |
---|---|
add(E element) | ベクターの最後に要素を追加します |
add(int index, E element) | 指定された位置に要素を挿入します |
get(int index) | 指定された位置の要素を返します |
remove(int index) | 指定された位置の要素を削除します |
size() | ベクター内の要素の数を返します |
clear() | ベクターからすべての要素を削除します |
contains(Object o) | ベクターに指定された要素がある場合はtrueを返します |
継承されたメソッド
ベクターは孤独な狼ではありません - 親クラスからメソッドを継承しています。その一部に以下のものがあります:
-
AbstractList
から:hashCode()
,equals()
-
AbstractCollection
から:toString()
-
Object
から:clone()
,finalize()
これらの継承されたメソッドは、ベクターにさらなる機能を提供します!
要素の追加とベクターの反復例
では、知識を実践に移して楽しい例を見ていきましょう。お気に入りのアイスクリームの味を持つベクターを作成し、それを印刷することにします。
import java.util.Vector;
public class IceCreamParty {
public static void main(String[] args) {
// アイスクリームの味を保存する新しいベクターを作成
Vector<String> iceCreamFlavors = new Vector<>();
// ベクターにいくつかの味を追加
iceCreamFlavors.add("チョコレート");
iceCreamFlavors.add("バニラ");
iceCreamFlavors.add("ストロベリー");
iceCreamFlavors.add("ミントチップ");
// すべての味を印刷
System.out.println("私たちのアイスクリームの味:");
for (String flavor : iceCreamFlavors) {
System.out.println("- " + flavor);
}
// 特定の位置に別の味を追加
iceCreamFlavors.add(2, "クッキードーナツ");
// 更新されたリストを印刷
System.out.println("\n更新されたアイスクリームの味:");
for (int i = 0; i < iceCreamFlavors.size(); i++) {
System.out.println((i+1) + ". " + iceCreamFlavors.get(i));
}
}
}
これを分解して見ていきましょう:
- 新しいベクター
iceCreamFlavors
を作成することから始めます。 -
add()
メソッドを使って4つの味を追加します。 - for-eachループを使ってすべての味を印刷します。
- 次に、索引2(つまり3番目の位置)に"クッキードーナツ"を追加します。
- 最後に、従来のforループを使って更新されたリストを印刷します。
出力
このコードを実行すると、以下のようなものが表示されます:
私たちのアイスクリームの味:
- チョコレート
- バニラ
- ストロベリー
- ミントチップ
更新されたアイスクリームの味:
1. チョコレート
2. バニラ
3. クッキードーナツ
4. ストロベリー
5. ミントチップ
それでおしまい!ベクターを作成し、変更し、反復することができました。まるですでにプロのJavaプログラマーみたいでしょう?
覚えることをお勧めします。異なるタイプのオブジェクトを持つベクターを作成することや、私たちが話した他のメソッドを試してみてください。知らずにそれがプロのようにベクターを操作することができるようになります!
Javaのベクタークラスは、あなたのプログラミングツールキットの中で強力なツールです。現代的なJavaプログラミングではパフォーマンスの理由でほぼすべての場面でArrayListに取って代わられていますが、ベクターを理解することはまだ価値があります。特にレガシーコードを扱う場合や、スレッドセーフな動的配列が必要な場合です。
だから、コーディングを続け、学び続け、そして最も重要なのは、Javaを楽しもうという心を忘れないでください!
Credits: Image by storyset