2011-07-06 10 views
0

私は8つのフィールドを持つハッシュマップを持っています。それらのうち2つはidとidseqです。どちらも整数です。同じidseqが複数存在する可能性がありますが、1つのidには一致しません。このhaspマップは、これらの2つに基づいてソートできますか?2つのフィールドを持つHas​​hMapを並べ替える

答えて

0

私たちは、このようなツリーマップを使用することができます。

TreeMap<Integer,DRG> sortedMap = new TreeMap<Integer,DRG>(); 

sortedMap.putAll(hashmap); 

ツリーマップは、残りの世話をします。データベースで表される値の順序は、ツリーマップを使用して復元できます。

1

これらの2つの整数値を含むキーを作成し、それをマップのキーとして使用します。このキーをComparableとし、ソートロジックを実装します。それはソートする必要がある場合は、好ましくはTreeMap、マップのキーとしてこれを使用することができます

class MyCustomKey implements Comparable<MyCustomKey> { 
    final int id; 
    final int idSeq; 

    public MyCustomKey(int id, int idSeq) { 
     this.id = id; 
     this.idSeq = idSeq; 
    } 

    public int getId() { 
     return this.id; 
    } 

    public int getIdSeq() { 
     return this.idSeq; 
    } 

    @Override 
    public int compareTo(MyCustomKey o) { 
     // your compare logic goes here 
     return -1; 
    } 
} 

:このような

何か。

0

代わりにカスタムコンパレータを使用して、そのコンストラクタに渡す必要があります。

関連する問題