프로그램 언어/Java
Java ArrayList <class>의 날짜 값으로 정렬
husks
2023. 3. 2. 10:25
반응형
ArrayList 안에 객체들이 존재하고 그 안의 날짜를 기준으로 정렬하는 예제 입니다.
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
public class CompareDate {
public static void main(String[] args) {
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.YEAR, 2021);
calendar1.set(Calendar.MONTH, 9-1);
calendar1.set(Calendar.DAY_OF_MONTH, 15);
Calendar calendar2 = Calendar.getInstance();
calendar2.set(Calendar.YEAR, 2021);
calendar2.set(Calendar.MONTH, 8-1);
calendar2.set(Calendar.DAY_OF_MONTH, 1);
Calendar calendar3 = Calendar.getInstance();
calendar3.set(Calendar.YEAR, 2022);
calendar3.set(Calendar.MONTH, 3-1);
calendar3.set(Calendar.DAY_OF_MONTH, 10);
Calendar calendar4 = Calendar.getInstance();
calendar4.set(Calendar.YEAR, 2022);
calendar4.set(Calendar.MONTH, 1-1);
calendar4.set(Calendar.DAY_OF_MONTH, 27);
ArrayList<MyObject> myObjectList = new ArrayList<>();
myObjectList.add(new MyObject(calendar1.getTime()));
myObjectList.add(new MyObject(calendar2.getTime()));
myObjectList.add(new MyObject(calendar3.getTime()));
myObjectList.add(new MyObject(calendar4.getTime()));
// Sort the originalList by dateValue in ascending order
Collections.sort(myObjectList, new Comparator<MyObject>() {
public int compare(MyObject o1, MyObject o2) {
return o1.getDateValue().compareTo(o2.getDateValue());
}
});
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy년 MM월 dd일");
// Add elements from the originalList to the sortedList in ascending order
for (MyObject obj : myObjectList) {
String strNowDate = simpleDateFormat.format(obj.getDateValue());
//지정한 포맷으로 변환
System.out.println("포맷 지정 후 : " + strNowDate);
}
}
}
class MyObject {
private Date dateValue;
public MyObject(Date dateValue) {
this.dateValue = dateValue;
}
public Date getDateValue() {
return dateValue;
}
public void setDateValue(Date dateValue) {
this.dateValue = dateValue;
}
}
이 예에서는 MyObject 객체의 배열 목록을 만듭니다.
각 객체에는 dateValue라는 날짜 필드가 있습니다. 그런 다음 dateValue필드별로 Collections.sort 메소드와 Date 클래스의 비교 메소드를 사용하여 두 객체의 dateValue를 비교하여 dateValue 필드별로 원본 목록을 정렬합니다.
마지막으로 myObjectList의 내용을 인쇄하여 정렬이 성공했는지 확인합니다.
반응형