날짜별로 ArrayList 개체 정렬
ArrayList 개체의 데이터를 구성할 때 알파벳순이 아닌 날짜를 기준으로 요소를 정렬해야 할 수 있습니다. . 이 기사에서는 객체 비교기와 실시간 비교기를 모두 사용하여 이를 달성하기 위한 솔루션을 제공합니다.
객체 비교기 구현
날짜별로 객체를 비교하려면 사용자 정의 Comparable 인터페이스를 구현하는 비교기 클래스입니다. 이 클래스 내에서 CompareTo 메서드를 재정의하여 두 개체의 DateTime 개체를 비교합니다. 예:
public static class MyObject implements Comparable<MyObject> { private Date dateTime; public Date getDateTime() { return dateTime; } public void setDateTime(Date datetime) { this.dateTime = datetime; } @Override public int compareTo(MyObject o) { return getDateTime().compareTo(o.getDateTime()); } }
그런 다음 Collections.sort를 사용하여 ArrayList를 정렬합니다.
Collections.sort(myList);
즉시 비교기 만들기
때로는 개체 모델을 변경하는 것이 불가능할 수도 있습니다. 이러한 경우 익명 내부 클래스 또는 람다 표현식을 사용하여 즉석 비교기를 만듭니다.
Collections.sort(myList, new Comparator<MyObject>() { public int compare(MyObject o1, MyObject o2) { return o1.getDateTime().compareTo(o2.getDateTime()); } });
Null 값 처리
안정성을 보장하려면 null 값에 대해 0을 반환하여 비교기 내의 null 값:
public static class MyObject implements Comparable<MyObject> { private Date dateTime; public Date getDateTime() { return dateTime; } public void setDateTime(Date datetime) { this.dateTime = datetime; } @Override public int compareTo(MyObject o) { if (getDateTime() == null || o.getDateTime() == null) return 0; return getDateTime().compareTo(o.getDateTime()); } }
또는 즉석 비교기:
Collections.sort(myList, new Comparator<MyObject>() { public int compare(MyObject o1, MyObject o2) { if (o1.getDateTime() == null || o2.getDateTime() == null) return 0; return o1.getDateTime().compareTo(o2.getDateTime()); } });
이러한 기술을 구현하면 개체 모델을 수정하거나 즉석 비교기를 사용하여 ArrayList 개체를 날짜를 기준으로 효율적으로 정렬할 수 있습니다.
위 내용은 Java에서 ArrayList 객체를 날짜별로 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!