JavaのVectorとは何ですか?どのように使用しますか?



「Javaのベクトル」に関するこのブログは、ベクトルクラスがArrayListとどのように異なるかを理解し、関連するさまざまなメソッドについて学習するのに役立ちます。

のベクトル プログラミングの世界で最も一般的に使用されているデータ構造の1つです。我々はすべてそれを知っている 配列 データを線形に保持するデータ構造です。ベクトルもデータを線形に格納しますが、配列とは異なり、固定サイズではありません。代わりに、必要に応じてサイズを大きくすることができます。

ベクトルクラスはの子クラスです AbstractList クラスと実装 リスト Vectorsを使用するには、最初にjava.utilパッケージからVectorクラスをインポートする必要があります。





java.util.Vectorをインポートします

この記事では、次のベクトルの概念について説明します。



Windows7にPHPをインストールする

始めましょう!

利点 JavaのVectorのs

  • 動的サイズを持つというプロパティは、サイズがわからない場合にメモリの浪費を回避するため、非常に便利です。 データ構造 宣言時。
  • プログラムの途中でデータ構造のサイズを変更したい場合、ベクトルは非常に便利です。

動的サイズを持つという特性は、JavaのVectorsに固有のものではありません。 ArrayListとして知られる別のデータ構造も、動的サイズを持つという特性を示しています。ただし、いくつかの理由により、VectorsはArrayListsとは異なります。

  • まず、ベクトルが同期されるため、 と比較して データ破損のリスクがあるため、プログラム。
  • 次に、Vectorには、ArrayListではなくVectorにのみ実装できるレガシー関数がいくつかあります。

ベクトルの要素にアクセスする方法

配列内の要素にアクセスするのと同じように、要素のインデックスを使用するだけでデータメンバーにアクセスできます。



例- ベクトルvの3番目の要素にアクセスする場合は、単にv [3]と呼びます。

ベクトルコンストラクター

以下にリストされているのは、ベクトルの複数のバリエーションです。 コンストラクター 使用可能:

  1. Vector(int initialCapacity、int Increment) –指定されたinitialCapacityとそのサイズの増分を使用してベクトルを作成します。
  2. Vector(int initialCapacity) - 指定されたinitialCapacityを使用して空のベクトルを作成します。この場合、増分はゼロです。
  3. ベクター() –容量10のデフォルトベクトルを作成します。
  4. ベクター(コレクションc) - 指定されたコレクションを使用してベクトルを作成します。要素の順序は、コレクションのイテレータによって返されるものと同じです。

ベクトルには3つの保護されたパラメータもあります

  1. IntcapacityIncrement()- サイズが容量より大きくなると、ベクトルの容量が自動的に増加します。
  2. Int elementCount()– ベクトル内の要素の数を教えてください
  3. Object [] elementData()– ベクトルの要素が格納されている配列

ベクトルの宣言における最も一般的なエラー

  • ベクトルは IllegalArgumentException 定義されたベクトルのInitialSizeが負の場合。
  • 指定されたコレクションがnullの場合、スローされます NullPointerException

注意:

  1. ベクトル増分が指定されていない場合、その容量は次のようになります。増分サイクルごとに2倍になります。
  2. ベクトルの容量はサイズを下回ることはできません。それと等しい場合があります。

Vectorsコンストラクターを初期化する例を考えてみましょう。

例:ベクトルコンストラクターの初期化

/ベクターコンストラクターを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){//デフォルトのベクターを作成するVector v1 = new Vector()//指定されたサイズのベクターを作成するVector v2 = new Vector(20)//指定されたサイズと増分のベクトルを作成しますVector v3 = new Vector(30,10)v2.add(100)v2.add(100)v2.add(100)//指定されたベクトルを作成しますコレクションVectorv4 = new Vector(v2)System.out.println( 'ベクターv1の容量' + v1.capacity())System.out.println( 'ベクターv2の容量' + v2.capacity())System.out .println( '容量のベクトルv3' + v3.capacity())System.out.println( '容量のベクトルv4' + v4.capacity())}

出力

コンストラクター-Javaのベクター-Edureka

ベクトルのメモリ割り当て

これまでのところ、ベクターには固定サイズではなく、動的にサイズを変更する機能があることを理解している必要があります。ベクトルは、オブジェクトを格納するために無期限の長いスペースを割り当てると考えるかもしれません。しかし、そうではありません。ベクトルは、「capacity」と「capacityIncrement」の2つのフィールドに基づいてサイズを変更できます。最初に、ベクトルが宣言されるときに、「容量」フィールドに等しいサイズが割り当てられます。容量に等しい要素を挿入できます。ただし、次の要素が挿入されるとすぐに、配列のサイズが「capacityIncrement」のサイズだけ増加します。したがって、サイズを動的に変更できます。

のために デフォルトのコンストラクタ 、容量がいっぱいになり、新しい要素が挿入されるたびに、容量は2倍になります。

– InitialCapacity5のベクトルがあり 容量増分 したがって、ベクトルの初期サイズは5要素です。このベクトルに5つの要素、つまり1,2,3,4,5を1つずつ挿入します。別の要素、つまり6をベクトルに挿入しようとすると、ベクトルのサイズは2ずつ増加します。したがって、ベクトルのサイズは7になります。したがって、ベクトルは番号に従ってサイズを簡単に調整できます。要素の。

もう1つの興味深い点は、配列とは異なり、ベクトルには実際のオブジェクトは含まれず、オブジェクトへの参照のみが含まれることです。したがって、異なるデータ型のオブジェクトを同じベクトルに格納できます。

ベクトルのメソッド

非常に頻繁に使用されるいくつかのベクトルメソッドを見てみましょう。

  • ブールadd(Object o)– ベクトルの最後に要素を追加します。
//ブール値のadd()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルを作成しますv.add(1 )//リストの最後に1を追加しますv.add( 'Java')//リストの最後に「Java」を追加しますv.add( 'is')//リストの最後に「is」を追加しますlist v.add( 'Fun')//リストの最後に 'Fun'を追加しますSystem.out.println( 'ベクトルは' + v)}}

出力

  • ボイド追加(intインデックス、E要素)– ベクトルの指定されたインデックスに指定された要素を追加します
// void add()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルを作成しますv.add(0 、1)//インデックス0に1を追加v.add(1、 'Java')//インデックス1に 'Java'を追加v.add(2、 'is')//インデックスに 'is'を追加2 v.add(3、 'Fun')//インデックス3に 'Fun'を追加しますv.add(4、 '!!!')//インデックス4に 'Fun'を追加しますSystem.out.println( 'ベクトルは '+ v)}}です。

出力

  • ブール値の削除(オブジェクトo)– ベクトル内の指定されたインデックスにある要素を削除します
//ブール値のremove()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルを作成しますv.add(1 )//リストの最後に1を追加しますv.add( 'Java')//リストの最後に「Java」を追加しますv.add( 'is')//リストの最後に「is」を追加しますlist v.add( 'Fun')//リストの最後に 'Fun'を追加しますSystem.out.println( '削除前のベクトル' + v)v.remove(1)System.out.println( 'Vector after削除 '+ v)}}

出力

  • ブール値removeElement( オブジェクトobj) - (インデックス番号ではなく)objという名前で要素を削除します
// removeElement()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルv.add(1)を作成します//リストの最後に1を追加しますv.add( 'Java')//リストの最後に「Java」を追加しますv.add( 'is')//リストの最後に「is」を追加しますv.add( 'Fun')//リストの最後に 'Fun'を追加しますSystem.out.println( '削除前のベクトル' + v)v.removeElement( 'Java')System.out.println( 'Vector削除後 '+ v)}}

出力

  • Int size()– ベクトルのサイズを返します。
// size()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルv.add(0、 1)//インデックス0に1を追加v.add(1、 'Java')//インデックス1に 'Java'を追加v.add(2、 'is')//インデックス2に 'is'を追加v.add(3、 'Fun')//インデックス3に 'Fun'を追加しますSystem.out.println( 'ベクトルサイズは' + v.size())}}

出力

  • Int Capacity()– ベクトルの容量を返します
// capacity()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルv.add(0、 1)//インデックス0に1を追加v.add(1、 'Java')//インデックス1に 'Java'を追加v.add(2、 'is')//インデックス2に 'is'を追加v.add(3、 'Fun')//インデックス3に 'Fun'を追加しますSystem.out.println( 'ベクトル容量は' + v.capacity())}}

出力

  • オブジェクトget(int index)– ベクトル内の指定された位置にある要素を返します
// get()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルv.add(1)を作成します//リストの最後に1を追加しますv.add( 'Java')//リストの最後に「Java」を追加しますv.add( 'is')//リストの最後に「is」を追加しますv.add( 'Fun')//リストの最後に 'Fun'を追加しますSystem.out.println( 'インデックス1の要素は' + v.get(1))}}

出力

  • オブジェクトfirstElement()– 最初の要素を返します
// firstElement()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルv.add(1)を作成します//リストの最後に1を追加しますv.add( 'Java')//リストの最後に「Java」を追加しますv.add( 'is')//リストの最後に「is」を追加しますv.add( 'Fun')//リストの最後に 'Fun'を追加しますSystem.out.println( '最初の要素は' + v.firstElement())}}

出力

  • オブジェクトlastElement()- 最後の要素を返します
// lastElement()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルv.add(1)を作成します//リストの最後に1を追加しますv.add( 'Java')//リストの最後に「Java」を追加しますv.add( 'is')//リストの最後に「is」を追加しますv.add( 'Fun')//リストの最後に 'Fun'を追加しますSystem.out.println( '最後の要素は' + v.lastElement())}}

出力

  • ブール値equals(Object o)– ベクトルが指定されたオブジェクトと等しいかどうかを比較します。対応するインデックスですべての要素がtrueの場合、trueを返します
//ブールequals()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルを作成しますVector vcopy = new Vector ()v.add(1)//リストの最後に1を追加しますv.add( 'Java')//リストの最後に「Java」を追加しますv.add( 'is')// 'を追加しますリストの最後に 'is' v.add( 'Fun')//リストの最後に 'Fun'を追加しますvcopy.add(0,1)//インデックス0に1を追加しますvcopy.add(1、 'Java')//インデックス1に 'Java'を追加しますvcopy.add(2、 'is')//インデックス2に 'is'を追加しますvcopy.add(3、 'Fun')// 'Fun'を追加しますインデックス3でvcopy.add(4、 '!!!')//インデックス4に 'Fun'を追加if(v.equals(vcopy))System.out.println( '両方のベクトルが等しい')else System .out.println( 'ベクトルが等しくない')}}

出力

  • ボイドtrimtosize()– この方法では、余分な容量が削除され、要素を保持するためだけに容量が維持されます。つまり、サイズと同じになります。
// trimToSize()メソッドを示すJavaコードimportjava.util。* public class Main {public static void main(String [] args){Vector v = new Vector()//デフォルトのベクトルv.add(0、 1)//インデックス0に1を追加v.add(1、 'Java')//インデックス1に 'Java'を追加v.add(2、 'is')//インデックス2に 'is'を追加v.add(3、 'Fun')//インデックス3に 'Fun'を追加しますSystem.out.println( 'ベクトル容量は' + v.capacity())v.trimToSize()System.out.println( 'ベクトル容量は' + v.capacity())}}

出力


その他重要な方法

ここまでで、ベクトルの操作方法について良いアイデアを持っているはずです。ベクトルメソッドをさらに詳しく調べたい場合は、以下の表をご覧ください。

メソッドの名前 メソッドの機能

ブールisEmpty()

要素が存在するかどうかを確認します

ブールcontains(Object o)

特定の要素の存在を確認するために使用されます。

int indexOf(Object o)

要素oのインデックスを返します

void removeRange(int s、int e)

インターフェイスとクラスの違い

sで始まり、(e-1)で終わるベクトルから要素を削除します

void clear()

すべての要素を削除します

void sureCapacity(int c)

容量がc増加します

void setSize(int s)

サイズをsに設定します。 s>サイズの場合、追加の容量はnull値で埋められます。の場合

オブジェクトelementAt(int a)

インデックス番号aに存在する要素を返します

.formatはPythonで何をしますか

オブジェクトセット(int a、オブジェクトo)

インデックスaに存在する要素を指定された要素oに置き換えます

Object [] toArray()

ベクトルと同じ要素を含む配列を返します

オブジェクトclone()

ベクトルオブジェクトがコピーされます

ブールaddAll(Collection c)

コレクションcのすべての要素をベクトルに追加します

ブール値addAll(int a、Collection c)

コレクションのすべての要素を挿入します cを指定されたインデックスのベクトルにa

ブールretainAll(Collection c)

コレクションcにも存在するベクター内のすべての要素を保持します

リストsubList(int s、int e)

sから始まり、ベクトルから(e-1)で終わる要素をListオブジェクトとして返します。

すべての良いことが終わると、Vectorsに関するブログも終わります。 。このブログでJavaベクターのすべての側面をカバーでき、ベクターに関する知識を収集できたことを願っています。

できるだけ練習し、経験を元に戻してください。

チェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。私たちはあなたの旅のすべてのステップであなたを助けるためにここにいます、このJavaインタビューの質問に加えてなるために、私たちはJava開発者になりたい学生と専門家のために設計されたカリキュラムを考え出します。

質問がありますか?この「Javaのベクトル」のコメントセクションでそれについて言及してください 記事と私たちはできるだけ早くあなたに返信します。