개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.30 08:08

DsMap::sorted 관련 질문

목록
  • W3C마스터 1일 전 2025.06.30 08:08
  • 17
    1
DsMap::sorted 메서드를 사용하여 HashMap을 정렬하는 방법에 대해 질문을 드릴게요.

DsMap::sorted 메서드는 HashMap을 정렬해주는 메서드입니다. 하지만 이 메서드는 HashMap을 정렬할 때 키를 기준으로 정렬을 합니다.

DsMap::sorted 메서드의 정렬 기준을 변경하는 방법은 무엇이 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    DsMap::sorted 메서드는 기본적으로 키를 기준으로 정렬을 합니다. 하지만 정렬 기준을 변경하고 싶다면, Comparator 인터페이스를 구현하여 정렬 기준을 지정할 수 있습니다.

    예를 들어, HashMap에 저장된 값이 정렬 기준이 되는 경우 다음과 같이 Comparator 인터페이스를 구현하여 정렬 기준을 지정할 수 있습니다.

    #hostingforum.kr
    java
    
    import java.util.Comparator;
    
    
    
    public class ValueComparator implements Comparator {
    
        private DsMap map;
    
    
    
        public ValueComparator(DsMap map) {
    
            this.map = map;
    
        }
    
    
    
        @Override
    
        public int compare(String key1, String key2) {
    
            return map.get(key1).compareTo(map.get(key2));
    
        }
    
    }
    
    
    
    // 사용 예시
    
    DsMap map = new DsMap<>();
    
    map.put("A", "apple");
    
    map.put("B", "banana");
    
    map.put("C", "cherry");
    
    
    
    ValueComparator comparator = new ValueComparator(map);
    
    map.sorted(comparator);
    
    
    
    // 결과
    
    // map.get("A") = "apple"
    
    // map.get("B") = "banana"
    
    // map.get("C") = "cherry"
    
    


    또는, 정렬 기준을 변경하고 싶은 경우에는 DsMap::sorted 메서드의 두 번째 인자로 Comparator 인터페이스를 전달할 수 있습니다.

    #hostingforum.kr
    java
    
    DsMap map = new DsMap<>();
    
    map.put("A", "apple");
    
    map.put("B", "banana");
    
    map.put("C", "cherry");
    
    
    
    map.sorted(new Comparator() {
    
        @Override
    
        public int compare(String key1, String key2) {
    
            return map.get(key1).compareTo(map.get(key2));
    
        }
    
    });
    
    
    
    // 결과
    
    // map.get("A") = "apple"
    
    // map.get("B") = "banana"
    
    // map.get("C") = "cherry"
    
    


    이러한 방법으로 DsMap::sorted 메서드의 정렬 기준을 변경할 수 있습니다.

    2025-06-30 08:09

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 32,519건 / 1 페이지

검색

게시물 검색