상세 컨텐츠

본문 제목

Java ArrayList <class>의 날짜 값으로 정렬

프로그램 언어/Java

by 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의 내용을 인쇄하여 정렬이 성공했는지 확인합니다.

반응형

'프로그램 언어 > Java' 카테고리의 다른 글

Java 생성자 메소드  (0) 2023.03.09
Java IllegalArgumentException  (0) 2023.03.09
Java 숫자 쉼표 표시 (콤마 표시)  (0) 2023.02.14
Java HashMap 값으로 정렬  (0) 2023.02.14
Java 구분자가 포함된 단어 합치기  (0) 2023.02.08

관련글 더보기

댓글 영역