속성을 기준으로 개체 목록 정렬
timeStarted 및 timeEnded를 포함하여 알람과 관련된 속성이 포함된 사용자 정의 Java 클래스 ActiveAlarm이 있습니다. List
해결책: 비교기 사용
Java에서는 비교기를 사용하여 객체를 정렬할 수 있습니다. 비교기는 두 객체를 비교하는 함수를 나타내는 인터페이스입니다. 지정된 기준에 따라 ActiveAlarm 개체를 비교하는 사용자 정의 비교기를 생성할 수 있습니다.
다음은 비교기를 사용한 구현 예입니다.
import java.util.Collections; import java.util.Comparator; class ActiveAlarm { public long timeStarted; public long timeEnded; // Other properties and accessor methods... } public class SortingAlarms { public static void main(String[] args) { List<ActiveAlarm> alarms = new ArrayList<>(); // Add alarms to the list // Create a comparator to sort by timeStarted and then timeEnded 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; } }; Collections.sort(alarms, comparator); // Print the sorted list for (ActiveAlarm alarm : alarms) { System.out.println(alarm.timeStarted + " - " + alarm.timeEnded); } } }
이 비교기는 먼저 알람의 timeStarted 값을 비교합니다. 값이 같으면 timeEnded 값을 비교합니다. 비교 결과(1, 0 또는 -1)는 정렬 순서를 결정하는 데 사용됩니다.
참고: Java 8 이상의 경우 람다 표현식을 사용하여 정렬 순서를 단순화할 수 있습니다. 비교기 구현:
Collections.sort(alarms, (a1, a2) -> Long.compare(a1.timeStarted, a2.timeStarted) != 0 ? Long.compare(a1.timeStarted, a2.timeStarted) : Long.compare(a1.timeEnded, a2.timeEnded));
위 내용은 여러 속성을 기반으로 Java 개체 목록을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!