コレクションMapのkeyとvalueの値を取り出す方法


標準的なMapアクセス方法は次のとおりです.
Set keys = map.keySet( );

if(keys != null) {

Iterator iterator = keys.iterator( );

while(iterator.hasNext( )) {

Object key = iterator.next( );

Object value = map.get(key);

;....

;}
}
欠点:
Mapからキーワードを取得した後、Mapに戻るたびに相対的な値を取得しなければなりません.これは煩雑で時間がかかります.
より好ましい方法:Mapクラスは、Map.Entryインスタンス化されたオブジェクトセットを返すentrySet()と呼ばれる方法を提供する.次に、Map.Entryクラスは、getKey()メソッドとgetValue()メソッドを提供するので、上記のコードをより論理的に整理することができます.例を次に示します.
Set entries = map.entrySet( );

if(entries != null) {

Iterator iterator = entries.iterator( );

while(iterator.hasNext( )) {

Map.Entry entry =iterator.next( );

Object key = entry.getKey( );

Object value = entry.getValue();


;....

}

}

1行のコードを追加したにもかかわらず、Mapに不要な「get」呼び出しを多く省略しました.同時に、キーワードと対応する値を同時に保持するクラスを開発者に提供します.Map.Entryは、mapの値を変更するためにプログラマが使用できるsetValue()メソッドも提供しています.
Hashtableの内部配列はハッシュ配列であるため,情報を出力すると無秩序である.出力されたデータが順番に並ぶことを保証するために,Javaが持つ関数でHashtableオブジェクトを調整処理することを望まない.HashtableのKEYとVALUEを取得すると、一般的にMap.Entryクラスを実行して変換します.はい、今このクラスを使って文章を作ります.具体的に方法を書きました.
コード:
/***メソッド名:getSortedHashtable*パラメータ:Hashtable h処理されたハッシュ・リストの導入  * 説明:導入したhashtable.entrySetをソートし、*/public static Map.Entry[]getSortedHashtable(Hashtable h){
   Set set = h.entrySet();       Map.Entry[] entries = (Map.Entry[])set.toArray(new Map.Entry[set.size()]);        Arrays.sort(entries,new Comparator(){
    public int compare(Object arg0, Object arg1) {      Object key1 = ((Map.Entry)arg0).getKey();      Object key2 = ((Map.Entry)arg1).getKey();      return ((Comparable)key1).compareTo(key2);     }        });       return entries; }
このメソッドを呼び出します.
Map.Entry[] set = getSortedHashtable(t);        //perportyTable    for (int i=0;i
    System.out.println(set[i].getKey().toString());          System.out.println(set[i].getValue().toString());   }