Javaのベクトル| 例を含むJavaベクトルクラス
公開: 2021-05-26プログラミングで最も一般的に使用されるデータ構造の1つは、JavaのVectorです。 配列は、データを線形に格納できる静的なデータ構造です。 同様に、Javaのvectorもデータを線形に格納しますが、固定サイズに制限されません。 代わりに、そのサイズは要件に応じて拡大または縮小できます。 親クラスはAbstractListクラスであり、ListInterfaceに実装されています。
ベクターの使用を開始する前に、次のようにjava.util.packageからベクターをインポートします。
java.util.Vectorをインポートします
目次
ベクトルの要素の宣言と評価
Javaでのベクトルの宣言方法は次のとおりです。
パブリッククラスVector<V>はAbstractList<V>を拡張します
List <V>、RandomAccess、Cloneable、Serializableを実装します
ここで、Vは、int、string、charなどの要素のタイプです。
配列内のデータメンバーにアクセスするのと同様に、要素のインデックスを使用して、ベクトル内でもアクセスできます。 たとえば、VectorEの2番目の要素はE[2]としてアクセスできます。
Javaでベクトルを宣言する際に発生する一般的なエラー:
- ベクトルの初期サイズが負の値の場合、IllegalArgumentExceptionがスローされます
- 指定されたコレクションがnullの場合、NullPointerExceptionがスローされます
- ベクトルのサイズがベクトルの容量以下である
- ベクトル増分が指定されていない場合、容量は増分サイクルごとに2倍になります
コンストラクター
1. Vector(int initialCapacity、int Increment)
これにより、指定された初期容量を持つJavaでベクトルが作成され、増分も指定されます。 増分では、ベクトルが上方にサイズ変更されるたびに割り当てられる要素の数が指定されます。
構文:Vector <V> e = new Vector <V>(int initialCapacity、int Increment);
2. Vector(int initialCapacity)
これは、指定されたサイズに等しい初期容量を持つJavaでベクトルを作成します。
構文:Vector <V> e = new Vector <V>(int initialCapacity);
3. Vector()
これは、初期のデフォルト容量が10のJavaでベクトルを作成します。
構文:Vector <V> e = new Vector <V>();
4. Vector(コレクションc)
これは、要素がコレクションcの要素であるJavaでベクトルを作成します。
構文:Vector <V> e = new Vector <V>(Collection c);
これは、Javaでのベクトルの作成と使用を示す例です。
コード
importjava.util。*;
パブリッククラスメイン{
public static void main(String [] args)
{{
//デフォルトのベクトルを作成します
ベクトルa=new Vector();
//指定されたサイズのベクトルを作成します
ベクトルb=new Vector(20);
//指定されたサイズと増分のベクトルを作成します
ベクトルc=new Vector(30,10);
b.add(100);
b.add(200);
b.add(300);
//指定されたコレクションでベクトルを作成します
ベクトルd=新しいVector(b)
System.out.println("容量のベクトルa"+ a.capacity());
System.out.println("容量のベクトルb"+ b.capacity());
System.out.println("容量のベクトルc"+ c.capacity());
System.out.println("容量のベクトルd"+ d.capacity());
}}
出力
注:.capacity()は、ベクトルの容量を返すために使用されます。
Javaのベクトルには、次の3つの保護されたパラメーターがあります。
1. Int elementCount()-ベクトルに含まれる要素の数を示します
2. Int capcityIncremen()-ベクトルのサイズが容量より大きくなると、これにより容量が自動的に増加します。
3. Object [] elementData()-ベクトルの要素は配列に格納されます。
メソッド
Javaで頻繁に使用されるvectorのメソッドを次に示します。
1.要素を追加します
ブール値add(Object o)-要素がベクトルの最後に追加されます
Void add(int index V element)-指定された要素がベクトル内の指定されたインデックスに追加されます
JavaのVectorに要素を追加するためのコード:
importjava.util。*;
java.io.*をインポートします。
パブリッククラスAddElementsToVector{
public static void main(String [] arg)
{{
//デフォルトのベクトルを作成します
ベクトルa=new Vector();
// add()メソッドを使用して要素を追加する
a.add(1);
a.add(2);
a.add( "vect");
a.add( "for");
a.add(3);
System.out.println(“ Vector a is” + a);
//一般的なベクトルを作成します
Vector <Integer> b = new Vector <Integer>();
b.add(0);
b.add(1);
b.add(2);
System.out.println(“ Vector b is” + b);
}
}
出力
2.要素を削除します
ブール値Remove(object o)–ベクトル内の指定されたインデックスにある要素を削除するために使用されます
要素が削除されると、すべての要素が左にシフトされてスペースが埋められます。 その後、インデックスが更新されます。
Javaのベクトルからの要素の削除を説明するコード:
importjava.util。*;
java.io.*をインポートします。
パブリッククラス削除{
public static void main(String [] arg)
{{
//デフォルトのベクトルを作成します
ベクトルa=new Vector();
// add()メソッドを使用して要素を追加する
a.add(1);
a.add(2);
a.add( "vect");
a.add( "for");
a.add(4);
//要素を削除します
a.remove(2);
// 小切手
System.out.println( "削除後:" + a);
}
}
出力
チェックアウト: Javaで成功するキャリアを築く方法は?
3.要素を変更します
set()メソッドを使用して、要素を追加した後に要素を変更できます。 要素のインデックスは、ベクトルにインデックスが付けられるときに参照できます。 このメソッドは、インデックスと更新された要素を受け取ります。
Javaでベクトルの要素を変更するコード
importjava.util。*;
パブリッククラスの更新{
public static void main(String args [])
{{
//空のベクターを作成します
Vector <Integer> a = new Vector <Integer>();
//要素を追加します
a.add(1);
a.add(2);
a.add(3);
a.add(10);
a.add(20);
// 画面
System.out.println(“ Vector:” + a);
// 交換
System.out.println( "Replacing"
+ a.set(0、22));
System.out.println( "Replacing"
+ a.set(4、50));
//変更されたベクトルを表示します
System.out.println( "新しいベクトルは次のとおりです:" + a);
}
}
出力
4.ベクトルを反復します
ベクトルをループする方法はいくつかあります。 それらの1つはget()メソッドです。 これは、JavaでVectorの要素を反復処理するプログラムです。
importjava.util。*;
パブリッククラス反復{
public static void main(String args [])
{{
//ベクトルのインスタンスを作成します
Vector <String> a = new Vector <>();
// add()メソッドを使用して要素を追加します
a.add( "vector");
a.add( "in");
a.add(1、“ java”);
//Getメソッドとforループを使用します
for(int i = 0; i <a.size(); i ++){
System.out.print(a.get(i)+”“);
}
System.out.println();
//各ループに使用
for(String str:a)
System.out.print(str +”“);
}
}
出力
読む: Javaアーキテクチャとコンポーネント
その他の重要な方法
- Int size()–ベクトルのサイズを返すために使用されます
- Object get(int index)–ベクトル内の指定された位置にある要素を返すために使用されます
- Object firstElement()–Javaでベクトルの最初の要素を返すために使用されます
- Object lastElement()–Javaでベクトルの最後の要素を返すために使用されます
- ブールequals(Object o)–ベクトルが指定されたオブジェクトと等しいかどうかを比較するために使用されます。 すべての要素がそれぞれのインデックスでtrueの場合、trueを返します
- ボイドtrimtosize()–追加の容量を削除し、容量をサイズと同じに保つために使用されます
ベクトルの詳細
- Javaのベクトルは、整数インデックスを使用してアクセスできる動的データ構造です。
- ArrayListに似ていますが、同期されており、コレクションフレームワークでは使用できないいくつかのレガシーメソッドが含まれています。
- 挿入順序は維持されます。
- 非スレッド環境で使用されることはめったにありません。
- 同期が原因で、ベクトルは要素の検索、追加、更新、および削除のパフォーマンスが低下します。
- ベクトルクラスのイテレータは高速で失敗し、同時変更の場合はConcurrentModificationExceptionをスローします。
- スタックは、直接知られているサブクラスです。
ベクトルでのメモリ割り当て
上で見たように、ベクトルには定義されたサイズがありません。 代わりに、Javaのベクトルはそのサイズを動的に変更できます。 ベクトルは、要素を格納するために無期限のスペースを割り当てると想定されています。 しかし、そうではありません。 ベクトルのサイズは、「容量の増分」と「容量」の2つのフィールドに基づいて変更されます。
ベクトルが宣言されると、サイズに等しい「容量」フィールドが割り当てられ、容量に等しい要素を追加できます。 次の要素が挿入されるとすぐに、配列のサイズは「capacityIncrement」サイズだけ増加します。 これにより、ベクターのサイズを変更できるようになります。新しい要素が挿入されると、デフォルトのコンストラクターの容量が2倍になります。
世界のトップ大学からオンラインでソフトウェアコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
JavaでのVectorの利点
ベクトルの動的サイズはメモリの浪費を回避し、データ構造のサイズはプログラムの途中でいつでも変更できます。
ベクトルとArrayListsはどちらも動的です。 ただし、ベクトルは次のように有利です。
- ベクトルは同期されます。
- ArrayListsに実装できないレガシー関数がいくつかあります。
結論
Javaのベクトルは、サイズ制限のない動的配列であり、Java1.2以降のJavaコレクションフレームワークの一部です。 このブログでは、さまざまなコンストラクターと一般的に使用されているベクトルのメソッドを見てきました。 Vectorクラスは、スレッドセーフな環境でのみ使用する必要があることにも注意してください。
Java、OOP、フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのソフトウェア開発のエグゼクティブPGプログラム–フルスタック開発の専門分野をチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクトと割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。
Javaのベクトルとは何ですか?
ベクトルはJavaのデータ構造です。 名前が示すように、ベクトルは要素のシーケンスの一種です。 アクセスすると拡大および縮小する動的配列を使用します。 ベクトルの現在のサイズを取得するsize()メソッドと、ベクトルの容量を取得するcapacity()メソッドがあります。 これらの2つのメソッドは、ゼロより大きい値を返します。 ベクトルの容量は、新しい配列を割り当てることなくベクトル内に格納できる要素の数です。 ベクトルのサイズは、ベクトル内に現在格納されている要素の数です。
配列に対するベクトルの利点は何ですか?
アレイのサイズは固定されているため、必要に応じて拡大または縮小することはできません。 ベクトルは動的にサイズ変更可能な配列として実装され、必要に応じて拡大および縮小できます。 これは、データの継続的な増加に役立ちます。 たとえば、テキストファイルを1行ずつ読み取るプログラムは、ファイルのサイズに合わせて拡張できます。 一般に、ベクトルは配列よりも効率的です。 これは、ベクトルが参照の配列(java.lang.Objects)として実装されているのに対し、配列はオブジェクトの配列として実装されているためです。
JavaのArrayListとは何ですか?
クラスArrayListは、動的配列を表します。 新しい要素に対応するために必要に応じて拡張できます。 配列は、実際にはオブジェクトへの参照のリストとして実装されます。 要素を作成する必要があるときはいつでも、新しいオブジェクトへの参照が利用可能になります。 これは、ArrayListが動的にサイズ変更可能なリストとして実装されているために可能です。 ArrayListは、そのメソッドとフィールドのほとんどをAbstractListから継承します。 ArrayListは、新しいオブジェクトを作成する必要がないため、配列よりも高速です。 add、set、removeなど、配列のサイズを変更する変更メソッドは、配列のサイズを永続的に変更するため、破壊的メソッドと呼ばれます。