【DAY 11】集合に関する学習ノート


メンバー変数==属性==フィールド==Field
メンバー関数==メソッド==Method
コンストラクタ==コンストラクタ==コンストラクタ==コンストラクタ==コンストラクタ
クラス==Class
Listインタフェースでよく使われるクラス
--------------
Vector:スレッドは安全ですが、速度が遅く、ArrayListに置き換えられています.
ArrayList:スレッドが安全ではなく、クエリー速度が速い.
LinkedList:チェーンテーブル構造で、削除速度が速い.
LIstコレクションの要素を取り出す方法:
get(int index):足標から要素を取得します.
iterator():反復法により反復オブジェクトを取得します.
Hashcodeについて
--------------
1、hashCodeの存在は主にHashtable、HashMapなどの検索のためのショートカットであり、hashCodeはハッシュストレージ構造においてオブジェクトのストレージアドレスを決定するために使用される.
2、2つのオブジェクトが同じでequals(Java.lang.Object)メソッドに適用される場合、この2つのオブジェクトのhashCodeは必ず同じである.
3、オブジェクトのequalsメソッドが書き換えられた場合、オブジェクトのhashCodeもできるだけ書き換え、hashCodeが使用するオブジェクトを生成するには、equalsメソッドで使用されているオブジェクトと一致しなければならない.そうしないと、上記の第2点に違反する.
4、2つのオブジェクトのhashCodeは同じであり、必ずしも2つのオブジェクトが同じであることを示すものではない.すなわちequals(java.lang.Object)メソッドに必ずしも適用されるものではない.この2つのオブジェクトがハッシュストレージ構造、例えばHashtableで「同じバスケットに格納されている」ことを説明できるだけである.
       
 key.hash==p.hash && (key==p || key.equals(p));  // (Boolean)

反復器
-------------------------
反復は、コレクション内の要素を取り出す方法です.
Collectionにはiteratorメソッドがあるため、各サブクラスの集合オブジェクトには反復器が備えられています.
使用例:
        
// FOR 
for(Iteratoriter = iterator();iter.hasNext();  )
{
  System.out.println(iter.next());
}
//while 
Iteratoriter = l.iterator();
while(iter.hasNext())
{
  System.out.println(iter.next());
}

TIP1:
反復の注意
反復器はCollectionインタフェースで一般的であり,VectorクラスのEnumeration(列挙)に取って代わる.
反復器のnextメソッドは、NoSuchElementExceptionが発生しないように、要素を自動的に下に取り出すことです.
反復器のnextメソッドの戻り値タイプはObjectなので、タイプ変換を覚えておいてください.
TreeSet
---------------
1.比較方法を用いて対象が重複しているか否かを判断する.
2.比較方法の実現は2種類ある
a)Comparatorコンパレータをカスタマイズし、TreeSetに関連付ける.
b)javaBeanにComparableインタフェースを実現させ,CompareTo()メソッドを実現させる.
3.TreeSetはnull要素を収容できます.
4.TreeSetは降順配列を使用できます.
降順反復器をdescendingIterator()法により実現した.
5.TreeSetのデフォルト昇順配列.
本文は“yehomlab”のブログから出て、転載して作者と連絡してください!