Javaコレクションの知識の仕上げ

コンセプト:

Javaクラスライブラリは、多くの「コレクションクラス」を提供します。これらのコレクションクラスは、異なる「データ構造」を使用して格納します。データ構造が異なると、追加、削除、変更、チェックのパフォーマンスが異なります。
一般的なデータ構造
1)配列、クエリの高速増加と低速削除
2)リンクリスト、高速クエリの追加と削除低速
3)スタック、後入れ先出しプッシュスタック爆弾スタック
4)キュー、
先入れ先出し5)ハッシュテーブル。クエリ、追加、削除は高速です
6)。
ここに画像の説明を挿入

コレクション

注:①、コレクションはオブジェクトのみを保存できます。たとえば、int型のデータ1を格納してコレクションに入れると、それは自動的にIntegerクラスに変換されて格納されますJavaのすべての基本型には、対応する参照型があります。
   ②コレクションには複数のオブジェクトへの参照が格納され、オブジェクト自体は引き続きヒープメモリに配置されます。
   ③、コレクションにはさまざまなタイプ、無制限の数のデータタイプを保存できます。
知識の挿入:
パッケージクラス:
基本データタイプ-----パッケージタイプ
バイト-----バイト
ブール-----ブール
ショート-----ショート
チャー-----文字
整数---- -Integer
long ----- Long
float ----- Float
double ----- Double
A)。コレクションコレクション:単一列コレクション
| –Listコレクション:1.順序付き; 2.重複する要素を保存できる;できるインデックス操作要素;
| – ArrayList(サブクラス):配列実装
| – LinkedList(サブクラス):リンクリスト実装
| –セットコレクション:1.順序なし; 2.重複する要素を格納できない;
| – HashSet(サブクラス):ハッシュテーブル
| –LinkedHashSet(サブクラス):リンクリスト、ハッシュテーブル。順序付き
B)マップコレクション:2列のコレクション(キーと値のペア)
| –HashMap(サブクラス):ハッシュテーブルの実装;
| –LinkedHashMap(サブクラス):リンクリスト、ハッシュテーブルの実装

Collection_Collectionの一般的なメソッド
1)。Collectionで宣言されたメソッドは、ListおよびSetコレクションで実装されます;
2)。一般的に使用されるいくつかのメソッド:
add:
public boolean add(E e):put the givenオブジェクトは現在のコレクションに追加され、戻り値:ArrayListの場合は常にtrueを返し、Setの場合は、重複する要素を格納する場合にのみ、falseを返し、格納に失敗します。

削除:
public void clear():コレクション内のすべての要素をクリアします。
public boolean remove(E e):指定されたオブジェクトを現在のコレクションから削除します。戻り値:削除が成功した場合はtrue、それ以外の場合:false注:コレクションに複数の「重複する要素」がある場合、最初の要素のみが削除されます。(削除は次の比較に依存します:等しい())

判断:
public boolean contains(Object obj):現在のコレクションに特定のオブジェクトが含まれているかどうかを判断します。注:検索は、equals();の比較に依存しています;
public boolean isEmpty():現在のコレクションが空かどうかを判断します。

Get:
public int size():コレクション内の要素の数を返します。
public Object [] toArray():コレクションの要素を配列に格納します。コレクションを配列に変換します。
public Iterator iterator():コレクションをトラバースするための「イテレータ」を取得します。

補足知識
イテレータを使用して元のオブジェクトを追加または削除することはできません。そうでない場合、プログラムはエラー(ConcurrentModificationException)を報告します。

//定义一个list集合
ArrayList<String> list=new ArrayList<>();
Iterator it=list.iterator();
while(it.hasNext()){ //获取浮标 判断是否有下一个
System.out.print(it.next());//输出
}

補足知識:
拡張対象:
配列およびコレクションをトラバースするために使用されるループステートメントです。構文的には、通常のforループよりも簡潔です。

//快捷键 arr.iter  
//注意增强for底层是迭代器不可以执行增删操作
  int [] arr={2,14,1,3,22,11,4};
        for (int i : arr) {
            System.out.println(i);
        }

リストコレクション:

1)。Collectionインターフェースを継承しています。さらに、いくつかのメソッドが追加されています。
2)。リストコレクション機能:順序付け;重複する要素を格納できる;「インデックス」を介して要素を操作できる;
3)。新しい一般的に使用されるメソッド:
add public void add(int index、E element):指定する要素がコレクション内の指定された位置に追加されます。
変更:public E set(int index、E element)セット内の指定された位置にある要素を指定された要素に置き換え、更新前の要素を返します。
削除:public E remove(int index):リストの指定された位置にある要素を削除し、削除された要素を返します。
Get:public E get(int index):コレクション内の指定された位置にある要素を返します。
ArrayList(リストコレクションサブクラス):
配列の実装。固有のメソッドはありません。
LinkedList(リストコレクションサブクラス):
リンクリストの実装、いくつかのユニークなメソッドがあります。スタックおよびキュー操作のシミュレーションに使用されます

セットコレクション

機能
1.順不同(追加とは異なる順序を指す); 2.重複する要素を保存できない; 3.インデックスでアクセスできない。
hashSet(サブクラス):
機能:追加と削除のクエリの高速化注:
特定の位置に要素を追加する場合、hashCode()メソッドを使用してインデックス位置が存在するかどうかを確認し、equse()メソッドを使用して要素が同じかどうかを判断します。

HashSet<String> set = new HashSet<>();
set.add("张三");
set.add("张三");//错误 不可存储重复 输出只会有一个“张三”
set.add("李四");
for (String s : set) {
            System.out.println(s);// 李四 张三
        }
set.clear();//清空集合
set.iterator();//迭代器 作用遍历

LinkedHashSet(サブクラス):
機能:セット、リンクリスト、ハッシュテーブル構造の特殊なケースです。整然とした

 LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
        linkedHashSet.add("张三");
        linkedHashSet.add("李四");
        linkedHashSet.add("王五");
        for (String s : linkedHashSet) {
            System.out.println(s);//张三 李四 王五
        }

地図コレクション

機能:2列のコレクションは2つのオブジェクトを格納します:キーと値のペア
HashMap(サブクラス):ハッシュテーブルの実装

HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("1","张三");//put() 添加元素的方法 “1”是键,“张三”是值
        hashMap.put("2","李四");
        hashMap.put("3","王五");
        hashMap.get("1");//get() 获取指定索引位置的值的方法
        hashMap.remove("2");//remove() 移除指定位置的键和值

トラバースする方法は2つあります。

 Set<String> keySet = hashMap.keySet();//获取键的集合
        for (String s : keySet) {
            System.out.println(hashMap.get(s));
        }
    }
//获取集合中的每一个键值对对象的集合遍历
 Set<Map.Entry<String, String>> entrySet = hashMap.entrySet();
        for (Map.Entry<String, String> s : entrySet) {
            String key=s.getKey();
            String value=s.getValue();
            System.out.println(key+":"+value);
        }

LinkedHashMap(サブクラス):リンクリスト、ハッシュテーブルの実装
機能:順序付け
hashMapトラバーサルメソッドに似た特別なメソッドはありません。

オリジナルの記事を8件公開 Likes0 Visits 38

おすすめ

転載: blog.csdn.net/FearSun/article/details/105385757