Java에서 여러 속성별로 개체 목록 정렬
Java에서 속성별로 개체 목록을 정렬하려면 비교기를 사용해야 합니다. 다음 예를 고려하십시오.
public class ActiveAlarm { public long timeStarted; public long timeEnded; // ... other fields }
timeStarted 및 timeEnded를 기준으로 ActiveAlarm 객체 목록을 오름차순으로 정렬하려면 중첩 비교기를 사용할 수 있습니다.
List<ActiveAlarm> alarms = ...; Comparator<ActiveAlarm> comparator = Comparator.comparing(alarm -> alarm.timeStarted) .thenComparing(alarm -> alarm.timeEnded); Collections.sort(alarms, comparator);
사용 Java 8 람다 표현식
Java 8에서는 비교기를 나타내는 간결한 방법을 제공하는 람다 표현식을 도입했습니다.
Comparator<ActiveAlarm> comparator = (alarm1, alarm2) -> { int result = Long.compare(alarm1.timeStarted, alarm2.timeStarted); if (result == 0) { result = Long.compare(alarm1.timeEnded, alarm2.timeEnded); } return result; };
대체 정렬 방법
또는 속성에 직접 액세스하는 사용자 정의 비교기 구현을 사용할 수 있습니다.
Comparator<ActiveAlarm> comparator = new Comparator<ActiveAlarm>() { @Override public int compare(ActiveAlarm o1, ActiveAlarm o2) { int result = Long.compare(o1.timeStarted, o2.timeStarted); if (result == 0) { result = Long.compare(o1.timeEnded, o2.timeEnded); } return result; } };
비교기를 사용하면 속성 조합과 순서에 따라 개체 목록을 쉽게 정렬할 수 있습니다.
위 내용은 Java에서 여러 속성을 기준으로 개체 목록을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!