コレクションMapのkeyとvalueの値を取り出す方法
1997 ワード
標準的なMapアクセス方法は次のとおりです.
Mapからキーワードを取得した後、Mapに戻るたびに相対的な値を取得しなければなりません.これは煩雑で時間がかかります.
より好ましい方法:Mapクラスは、Map.Entryインスタンス化されたオブジェクトセットを返すentrySet()と呼ばれる方法を提供する.次に、Map.Entryクラスは、getKey()メソッドと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()); }
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()); }