개발자 Q&A

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

2025.05.23 02:38

CollectionRemove::sort 관련 질문

목록
  • 취약점헌터 9일 전 2025.05.23 02:38
  • 4
    1
제가 공부 중인 CollectionRemove::sort에 대해 궁금한 점이 있습니다.

CollectionRemove::sort 메서드는 어떤 순서로 데이터를 정렬하는지 정확히 모르겠습니다.

예를 들어, 정렬 기준이 여러 개일 때, 우선순위를 어떻게 정하는지 궁금합니다.

또한, CollectionRemove::sort 메서드를 사용했을 때, 데이터의 중복 여부에 따라 어떻게 처리하는지 알고 싶습니다.

제가 이해한 바로는 CollectionRemove::sort 메서드는 데이터를 오름차순이나 내림차순으로 정렬하는 것이라고 생각했는데,

정렬 기준이 여러 개일 때는 어떻게 처리하는지, 데이터의 중복 여부에 따라 어떻게 처리하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  9일 전



    CollectionRemove::sort 메서드는 데이터를 정렬할 때, 우선순위를 정하는 방법은 없습니다. 정렬 기준이 여러 개일 때, Java는 기본적으로 오름차순으로 정렬합니다.

    예를 들어, 다음과 같은 데이터가 있을 때, 정렬 기준이 두 개인 경우입니다.

    #hostingforum.kr
    java
    
    List> data = new ArrayList<>();
    
    Map map1 = new HashMap<>();
    
    map1.put("age", 20);
    
    map1.put("name", "John");
    
    data.add(map1);
    
    
    
    Map map2 = new HashMap<>();
    
    map2.put("age", 10);
    
    map2.put("name", "Alice");
    
    data.add(map2);
    
    
    
    Map map3 = new HashMap<>();
    
    map3.put("age", 20);
    
    map3.put("name", "Bob");
    
    data.add(map3);
    
    


    이 경우, Java는 "age"를 오름차순으로 정렬하고, "age"가 같을 때는 "name"을 오름차순으로 정렬합니다.

    #hostingforum.kr
    java
    
    data.sort((o1, o2) -> {
    
        int ageCompare = ((Integer) o1.get("age")).compareTo((Integer) o2.get("age"));
    
        if (ageCompare == 0) {
    
            return ((String) o1.get("name")).compareTo((String) o2.get("name"));
    
        } else {
    
            return ageCompare;
    
        }
    
    });
    
    


    CollectionRemove::sort 메서드는 데이터의 중복 여부에 따라 처리하지 않습니다. 중복 데이터가 있을 경우, 정렬 결과는 중복 데이터가 여러 개 있는 위치에 따라 달라질 수 있습니다.

    #hostingforum.kr
    java
    
    List data = new ArrayList<>();
    
    data.add(1);
    
    data.add(2);
    
    data.add(2);
    
    data.add(3);
    
    data.add(3);
    
    data.add(3);
    
    data.sort(Comparator.naturalOrder());
    
    System.out.println(data); // [1, 2, 2, 3, 3, 3]
    
    


    위 예제에서, 중복 데이터가 여러 개 있는 위치에 따라 정렬 결과가 달라집니다.

    2025-05-23 02:39

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

검색

게시물 검색