비교기를 사용하여 타임스탬프별로 목록의 객체 정렬
Java에서 여러 속성을 기반으로 객체 목록을 정렬하려면 비교기를 사용해야 합니다. ActiveAlarm과 같은 시간 관련 속성이 있는 클래스가 있는 경우 비교기를 사용하여 특정 순서로 정렬할 수 있습니다.
List
List<ActiveAlarm> alarms = new ArrayList<>(); // Custom comparator to compare ActiveAlarm instances based on timeStarted and timeEnded Comparator<ActiveAlarm> comparator = new Comparator<ActiveAlarm>() { @Override public int compare(ActiveAlarm o1, ActiveAlarm o2) { // First compare timeStarted int comparisonResult = Long.compare(o1.timeStarted, o2.timeStarted); // If timeStarted is equal, compare timeEnded if (comparisonResult == 0) { comparisonResult = Long.compare(o1.timeEnded, o2.timeEnded); } return comparisonResult; } }; // Sort the list of alarms using the comparator Collections.sort(alarms, comparator);
이 비교기에서 비교 메소드는 먼저 timeStarted 값을 비교하고 o1이 o2보다 이전(<0) 또는 이후(>0)인지 여부를 나타내는 정수를 반환합니다. timeStarted 값이 동일하면 timeEnded 값을 비교합니다.
Java 8 이상에서는 람다 표현식을 사용하여 비교기를 단순화할 수 있습니다.
Comparator<ActiveAlarm> comparator = (o1, o2) -> { int comparisonResult = Long.compare(o1.timeStarted, o2.timeStarted); if (comparisonResult == 0) { comparisonResult = Long.compare(o1.timeEnded, o2.timeEnded); } return comparisonResult; };
비교기를 활용하면 특정 속성을 기반으로 개체 목록을 효율적으로 정렬할 수 있어 Java에서 데이터를 구성하고 조작하기 위한 유연한 접근 방식을 제공합니다.
위 내용은 비교기를 사용하여 여러 타임스탬프를 기준으로 Java 객체 목록을 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!