Collection は最も基本的なコレクション インターフェイスです。Collection はオブジェクトのグループ、つまり Collection の要素を表します。Map はキーと値のマッピングを提供します
ArrayList と Vector の違い、 HashMap と Hashtable
回答: ArrayList と Vector は主に 2 つの側面から来ています.
1. 同期性: Vector はスレッド セーフであり、同期されていることを意味しますが、ArrayList はスレッド セーフで同期されていません
2.データの増加: 増加が必要な場合、Vector はデフォルトで 1 レベル増加し、ArrayList は元のサイズの半分だけ増加します。
HashMap と HashTable には 3 つの主要な側面があります。
1. 歴史的な理由: Hashtable は古い Dictionary クラスに基づいており、HashMap は Java 1.2 で導入された Map インターフェイスの実装です。
2. 同期性: Hashtable はスレッドセーフです。つまり、同期的です。 HashMap は安全ではないオンライン プログラムであり、同期ではありません
Three. 値: HashMap のみ、テーブル エントリのキーまたは値として null 値を使用できます
ストレージ パフォーマンスと ArrayList のパフォーマンス、 Vector と LinkedList の機能
ArrayList と Vector はどちらも配列を使用してデータを保存します。配列要素の数は、要素の追加や挿入ができるように、実際に保存されるデータよりも大きいです。両方とも要素にシリアル番号で直接インデックスを付けることができます, ただし、要素の挿入には配列要素の移動などのメモリ操作が含まれるため、データのインデックス付けは高速ですが、データの挿入は低速です。Vector は同期メソッド (スレッド セーフ) を使用するため、通常、そのパフォーマンスは ArrayList よりも劣りますが、LinkedList は二重リンクを使用します。シリアル番号によるデータのインデックス作成には前方または後方のトラバースが必要ですが、データを挿入する場合は、このアイテムの前後のアイテムを記録するだけでよいため、挿入速度が速くなります。
8 4 つのスレッドを設計します。そのうちの 2 つは毎回 j を 1 ずつ増加させ、他の 2 つのスレッドは毎回 j を 1 ずつ減少させます。プログラムを書きます。
次のプログラムは内部クラスを使用してスレッドを実装しており、j を増減するときに順序を考慮しません。
public class ThreadTest1{
private int j;
public static void main(String args[]){
ThreadTest1 tt=new ThreadTest1();
Inc inc=tt.new Inc( );
Dec dec=tt.new Dec();
for(int i=0;i<2;i ){
Thread t=new Thread(inc);
t.start ();
t=new Thread(dec);
t.start();
}
}
private synchronized void inc(){
j ;
System .out.println(Thread.currentThread().getName() "-inc:" j);
}
private synchronized void dec(){
j--;
System.out. println(Thread.currentThread().getName() "-dec:" j);
}
class Inc は Runnable を実装します{
public void run(){
for(int i =0;iinc();
}
}
}
class Dec は Runnable を実装します{
public void run(){
for (int i=0;idec();
}
}
}
}
以上がJAVAでのコレクションフレームワークの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。