2011-07-06 85 views
0

我有一個包含8個字段的散列表。其中2個是id和idseq。兩者都是整數。可以有多個類似的idseq,但不能用於一個id。這個貼圖可以在這2個基礎上排序嗎?用2個字段對HashMap排序

回答

0

我們可以用樹形圖是這樣的:

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

sortedMap.putAll(hashmap); 

樹形圖將完成剩餘的工作。數據庫中表示的值的順序可以通過使用樹圖來恢復。

1

創建一個包含這兩個整數值的關鍵字,並將其用作地圖的關鍵字。使此密鑰Comparable並在那裏實現您的排序邏輯。

事情是這樣的:

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; 
    } 
} 

然後,您可以使用它作爲重點的地圖,最好是TreeMap是否應該進行排序。

0

使用一個TreeMap,而不是使用自定義Comparator,你應該傳遞給它的構造函數。