작성
·
70
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
ghuhan18님께서는 Comparable
과 Comparator
의 차이와 특히, 단순히 알파벳 순이 아닌 문자열 길이에 따라 정렬하고 싶을 때 Comparator
를 사용하는 것이 올바른지에 대해 질문하셨습니다.
우선, Comparable
인터페이스는 객체 자체에 정렬 메커니즘을 내장시켜 자연적인 순서로 정렬하기 위해 사용됩니다. 반면, Comparator
인터페이스는 별도의 정렬 기준을 설정할 때 사용되며, 정렬 방식을 객체 외부에서 정의하고 싶을 때 유용합니다.
따라서 String ID의 알파벳 순서가 아닌 길이 순으로 정렬하고 싶을 때는, 기본적인 자연적인 배열 순서로 정의하는 Comparable
보다는 정렬 기준을 외부에서 제공하는 Comparator
를 활용하는 것이 맞습니다. Comparator
를 사용하면 정렬 기준을 유연하게 바꿀 수 있어, 위와 같은 요구 사항에 적합합니다.
이와 관련한 논의는 기존 답변에서 찾아보실 수 있습니다:
- “Comparable이 아닌 Comparator를 사용하는 경우”에서는 기본 정렬 외 다른 정렬 방법을 사용해야 하는 경우 Comparator
를 사용하는 예시에 대해 설명하고 있습니다. 이는 Comparable
인터페이스를 사용하는 대신 Comparator
인터페이스를 사용하여 다양한 정렬 기준을 적용하는 방법에 대한 좋은 사례를 제공합니다.
따라서, ghuhan18님의 질문에 답변이라면, 예시의 상황에서 Comparator
를 사용하는 것이 올바른 접근 방식입니다. 문자열의 길이로 배열을 정렬하고자 하는 경우, Comparator
를 구현하여 정렬 로직을 직접 정의할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.