内容:
- ArrayListのダイナミックアレイ
- 二重リンクリストLinkedLsit
- スタックベクタ、スタック
- キューキュー、デック
- 集合TreeSetの、HashSetの、LinkedHashSetの
- 哈希表HashMapの、ハッシュテーブル、TreeMapの、のWeakHashMap
ダイナミックアレイ
最初のプリミティブ型と参照配列の配列のタイプの違いを知っています。
- Javaの数値、文字、およびブールなどの基本データ型、。
数値:バイト;短い; int型、長いです 。 - クラス、インタフェース、および配列変数:変数の参照を含むデータを入力します
- ストレージ上の2つの間の主な違い:
基本データ型メモリに分割されるスタック上に作成され、スタックに直接格納された値、
参照データ型場合ベッドフレーム、最初にスタック上ヒープに格納されたオブジェクトの参照を割り当てメモリ、及び特定の情報は、次いで、スタックアドレス上記基準点は、ヒープ内のオブジェクト。
配列が静的であるなぜあなたは知っていますか?
が何を意味するかのジャワの動的な配列:
一般に、アレイは、定義されたサイズの後に変更することができません。しかし、あなたはシーンの多くは、配列のサイズを変更することができます必要があります。ArrayListのダイナミックアレイ伝説、以下のいくつかの利点を提供するアレイのバージョン、複雑である:
1を、動的に増加させ、要素減少
いるICollectionを達成するために、2及びリストインターフェース
3、フレキシブルセットアップアレイのサイズ
4、ArrayListオブジェクトの両方であります配列の特徴、機能のリストがあります。あなたは常にリストから要素を追加したり削除したりすることができます。
例えば:のArrayList <ストリング>リスト=新規のArrayList <ストリング>(); このリストは、<E>は、パン状、即ち、リストを格納することができる<E>のインスタンスである文字列のArrayList <E>を、格納することができます。
アレイ(配列)を使用する場合は、ときのArrayListを使用するには?
あなたはArrayListのを使用することができたとき、私たちは、最終的にどのように多くのデータ要素を知っていない場合は、あなたがデータ要素のどのように多くのセットを知っていれば、配列を使用します。
ArrayListの一般的な方法:
以下は、より一般的なArrayListクラスのメンバーメソッドのいくつかをまとめたものです:
リストに要素を追加します
ブール追加(要素e)は
、リストの末尾に、指定された要素が増加します。
追加(int型のインデックス、エレメントE)は無効
リストに指定された位置指定された要素が増加します。
リストから要素を削除します
無効)(クリア
リストからすべての要素を削除します。
E削除(int型のインデックス)
リストを削除する要素の位置を指定しました。
無効removeRange(int型[スタート]、int型エンド)を保護し
、特定の位置の最後に一つの位置からリストが始まるの削除要素に。
要素のリストを取得します。
E GET(INTインデックス)
、取得した要素リスト指定した位置。
オブジェクト[]のtoArray()の
配列を取得し、配列要素は、リスト内のすべての要素である。(すなわち、配列リストに変換)
要素を変更します。
Eセット(int型のインデックス、Eの要素 )
リスト上の位置を指定された要素は、新しい要素に置き換えます。
検索要素
ブール(オブジェクトO)を含む
リストが指定された要素を、trueに戻るが含まれている場合を。
のindexOf(オブジェクトO)をint型
リンクされたリストの最初の発生の要素の位置を返し、戻り-1場合、リストは、この要素を表すものではありません。
INTのlastIndexOf(物体O)
なしリスト要素ことを示している場合は-1、最後に出現のリスト内の要素の位置を返します。
リストが空であるかどうかをチェック
ブールのisEmpty()は
、リストには任意の要素を持っていない場合は、trueを返します。
リストのサイズを取得します。
int型のサイズは、()
(リストの要素の数を含む)のリストの長さを返します
import java.util.*;
public class ArrayListExamples {
public static void main(String args[]) {
// 创建一个空的数组链表对象list,list用来存放String类型的数据
ArrayList<String> list = new ArrayList<String>();
// 增加元素到list对象中
list.add("Item1");
list.add("Item2");
list.add(2, "Item3"); // 此条语句将会把“Item3”字符串增加到list的第3个位置。
list.add("Item4");
// 显示数组链表中的内容
System.out.println("The arraylist contains the following elements: "
+ list);
// 检查元素的位置
int pos = list.indexOf("Item2");
System.out.println("The index of Item2 is: " + pos);
// 检查数组链表是否为空
boolean check = list.isEmpty();
System.out.println("Checking if the arraylist is empty: " + check);
// 获取链表的大小
int size = list.size();
System.out.println("The size of the list is: " + size);
// 检查数组链表中是否包含某元素
boolean element = list.contains("Item5");
System.out
.println("Checking if the arraylist contains the object Item5: "
+ element);
// 获取指定位置上的元素
String item = list.get(0);
System.out.println("The item is the index 0 is: " + item);
// 遍历arraylist中的元素
// 第1种方法: 循环使用元素的索引和链表的大小
System.out
.println("Retrieving items with loop using index and size list");
for (int i = 0; i < list.size(); i++) {
System.out.println("Index: " + i + " - Item: " + list.get(i));
}
// 第2种方法:使用foreach循环
System.out.println("Retrieving items using foreach loop");
for (String str : list) {
System.out.println("Item is: " + str);
}
// 第三种方法:使用迭代器
// hasNext(): 返回true表示链表链表中还有元素
// next(): 返回下一个元素
System.out.println("Retrieving items using iterator");
for (Iterator<String> it = list.iterator(); it.hasNext();) {
System.out.println("Item is: " + it.next());
}
// 替换元素
list.set(1, "NewItem");
System.out.println("The arraylist after the replacement is: " + list);
// 移除元素
// 移除第0个位置上的元素
list.remove(0);
// 移除第一次找到的 "Item3"元素
list.remove("Item3");
System.out.println("The final contents of the arraylist are: " + list);
// 转换 ArrayList 为 Array
String[] simpleArray = list.toArray(new String[list.size()]);
System.out.println("The array created after the conversion of our arraylist is: "
+ Arrays.toString(simpleArray));
}
}