
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