JavaのJava ArrayListトラバーサルの4つの方法JavaのArrayListクラスの使用法
パッケージcom.test; import java.util.arraylist; import java.util.iterator; import java.util.list; public class arraylistdemo {public static void main(string args []){list <string> list = new ArrayList < string>(); "luojiahui"); (it1.next()); for(string tmp:list){system.out.println(tmp); get(i));PS:JavaのArrayListクラスの使用
1。配列とは何ですか
ArrayListは、MSDN用語では、次のメリットを提供します。
要素を動的に増加させ、減少させます
ICOLLECTIONおよびILISTインターフェイスを実装します
配列サイズの柔軟な設定
2。アレイリストの使用方法
最も簡単な例:
arrayList list = new ArrayList(); 5); //(int i = 0; i <3; i ++)の6番目の要素を削除します.toarray(typeof(int32)); //配列に含まれる配列を返します
これは簡単な例ですが、ArrayListのすべての方法は含まれていません。
3.アレイリストの重要な方法とプロパティ
1)コンストラクター
ArrayListは3つのコンストラクターに提供されます。
public arrayList();
デフォルトのコンストラクターは、デフォルト(16)サイズで内部配列を初期化します
public arrayList(icollection);
ICOLLECTIONオブジェクトで構成され、コレクションの要素をArrayListに追加します
public arrayList(int);
指定されたサイズで内部配列を初期化します
2)Issynchronized Property and ArrayList.synchronized Method
Issynchronizedプロパティは、現在のArrayListインスタンスがスレッドの同期をサポートしているかどうかを示し、ArrayList.synChronized StaticメソッドはArrayList Thread同期カプセル化を返します。
スレッド非同期インスタンスを使用する場合は、マルチスレッドにアクセスするときにスレッドの同期を保持するために、手動でロックを呼び出す必要があります。たとえば
arrayList list = new ArrayList();
Syncrootプロパティは実際にはそれ自体ですが、IcollectionのSyncrootの定義を満たすために、
ここでは、Syncrootを使用してソースコードの標準化を維持します
{list.add( "アイテムの追加");ArrayList.synchronizedメソッドによって返されるインスタンスを使用すると、このインスタンス自体がスレッドセーフを考慮する必要がありますarrayList.synChronizedインスタンスにより、その中の各プロパティはロックキーワードを使用して、スレッドの同期を確保します。
3)カウント属性と容量属性
カウントプロパティは、ArrayListに現在含まれている要素の数であり、このプロパティは読み取り専用です。
容量プロパティは、ArrayListが現在入力できる最大数ですが、このプロパティを手動で設定できます。
4)追加、追加、取り外し、取り外し、レムバージェンジ、挿入、Insertrange
これらの方法は似ています
ADDメソッドは、現在のリストの最後に要素を追加するために使用されます
AddRangeメソッドは、現在のリストの最後に要素のバッチを追加するために使用されます
削除メソッドは、要素を削除し、要素自体の参照を介して削除するために使用されます。
Removeatメソッドは、値をインデックス作成して要素を削除し、削除するために使用されます。
Removerangeは、開始インデックスと削除数を指定することによって削除される要素のバッチを削除するために使用されます。
挿入は、指定された位置に要素を追加するために使用され、リストの背後にある要素が順番に後方に移動されます。
InserTrangeは、指定された位置から要素のバッチを追加するために使用され、リストの背後にある要素が順番に後方に移動されます。
さらに、いくつかの同様の方法があります。
明確な方法は、既存のすべての要素をクリアするために使用されます。
含有方法は、オブジェクトがリストに含まれていないことを見つけるために使用されます
私は残りの部分を負担することはありません。
5)メソッドをトリミングします
このメソッドは、アレイリストを実際の要素のサイズに固定するために使用されます。
6)Toarrayメソッド
この方法は、ArrayList要素を新しい配列にコピーします。
4。アレイリストとアレイ変換
例1:
arraylist list = new ArrayList.Add(2); ;
例2:
ArrayList = new ArrayList(1); ;
上記では、アレイリストからアレイに変換する2つの方法を紹介します
例3:
arraylist list = new ArrayList(); ; /正しい文字列=(string [])toarray(typeof(string));
アレイはオブジェクトアレイに変換できるため、アレイリストに異なるタイプの要素を追加すると、アレイリストを呼び出すと、間違いはありません。すべての要素によって正しく変換できます。そうしないと、変換できない例外がスローされます。
5。アレイリストの使用に関する最良のアドバイス
このセクションでは、アレイリストとアレイの違い、およびarrayListの効率について説明します
1)ArrayListは、複雑なバージョンの配列です
ArrayListは、オブジェクトタイプの配列をカプセル化します。
実際の要素のサイズを決定します。
6)Toarrayメソッド
この方法は、ArrayList要素を新しい配列にコピーします。
4。アレイリストとアレイ変換
例1:
arraylist list = new ArrayList.Add(2); ;
例2:
ArrayList = new ArrayList(1); ;
上記では、アレイリストからアレイに変換する2つの方法を紹介します
例3:
arraylist list = new ArrayList(); ; /正しい文字列=(string [])toarray(typeof(string));
アレイとは異なり、オブジェクト配列に変換できるため、アレイリストメソッドを呼び出すと、すべての人が正しく変換できるタイプまたはオブジェクトタイプを渡すことは間違いありません。要素、それ以外の場合は、変換できない例外がスローされます。
5。アレイリストの使用に関する最良のアドバイス
このセクションでは、アレイリストとアレイの違い、およびarrayListの効率について説明します
1)ArrayListは、複雑なバージョンの配列です
ArrayListは、オブジェクトタイプの配列をカプセル化します配列の方法。
2)内部オブジェクトタイプの影響
一般的な参照タイプの場合、この部分は大きな影響を与えませんが、値タイプの場合、要素をアレイリストに追加して変更すると、梱包操作とボクシング操作が発生し、頻繁な操作がある程度の効率に影響を与える可能性があります。
しかし、ほとんどの人にとって、ほとんどのアプリケーションは値タイプの配列を使用しています。
この影響を排除する方法はありません。
3)アレイの拡張
これは、ArrayListの効率に大きな影響を与える要因です。
ADD、AddRange、挿入、Insertrange、その他の要素を追加すると、内部配列の容量が不十分である場合は、現在の容量の2倍のアレイを再構築し、古い要素をコピーします。新しいアレイでは、この重要なポイントでの拡張操作を破棄します。
例1:たとえば、16の要素のデフォルトサイズで作成されたArrayListに200の要素を持つデータが動的に追加された場合、渡されます。
16*2*2*2 = 256
4つの拡張が最終要件を満たしているので、次の場合
arrayList list = new ArrayList(210);
ArrayListを作成すると、4回の配列の作成とコピー操作が削減されるだけでなく、メモリの使用量も削減されます。
例2:ArrayListは、予想される30の要素で作成されます。
arrayList list = new ArrayList(30);
実行プロセス中、31の要素が追加された場合、アレイは60の要素のサイズに拡張され、この時点で新しい要素が追加されない場合、拡張操作があります。 。この時点で、使用してください。
arrayList list = new ArrayList(40);
その後、すべてが解決されます。
したがって、可能な要素を正しく推定し、適切な時期にトリムサイズメソッドを呼び出すことは、アレイリストを使用する効率を改善する重要な方法です。
4)頻繁にindexof、contain、およびその他の方法(sort、binarysearch、その他の正方形を呼び出す
この方法によって引き起こされる効率の損失は、この列ではなく最適化されています)まず第一に、アレイリストは動的な配列であることを明確にする必要があります。 IndexOF、Contain、その他のメソッドは、要素を見つけるのが簡単です。そのようなメソッドを呼び出すことは、自分でループを書き込み、この要件をわずかに最適化することをお勧めします。 HashtableやSortedListなどの値ペア。
arrayList al = new ArrayList(); al.add( "are"); al.add(300); al.add(1.2); al.add(22.8);