2011-07-06 2 views
0

나는 8 개의 필드를 가진 해시 맵을 가지고 있습니다. 그 중 2 개는 id와 idseq입니다. 둘 다 정수입니다. 하나 이상의 id가 아닌 하나 이상의 유사한 idseq가있을 수 있습니다. 이 hasp 맵을이 2 개의 기준으로 정렬 할 수 있습니까?HashMap을 2 개의 필드로 정렬하기

답변

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

생성자에 전달해야하는 사용자 정의 Comparator 대신 TreeMap을 사용하십시오.

관련 문제