2010-01-11 5 views
1

나는 개체의 arraylist, 각 년/월/일/시간 속성이 포함되어 있습니다. 내가 궁극적으로 시도한 것은 시간을 증가시켜 모든 객체 그룹을 포함하는 새로운 다차원 배열을 만드는 것입니다. 그래서 예를 들어, 내가 원하는 것 최종 배열의 예입니다정렬 arraylist 오름차순

array: [0] 
      [0] 01:04:00, 4-10-09 
      [1] 01:15:00, 4-10-09 
     [1] 
      [0] 02:25:00, 4-10-09 
     [2] 
      [0] 06:14:00, 4-10-09 
      [1] 06:27:00, 4-10-09 
     [3] 
      [0] 04:03:00, 4-11-09 
      [1] 04:11:00, 4-11-09 

내가 제대로하지만 자바 arraylists을 정렬 파악 힘든 시간을 보내고 있습니다. arraylist 내에서 각 섹션 (연도, 월, 일, 시간)을 오름차순으로 정렬 할 수 있습니까? 최종 배열에 삽입하기 전에 어떻게해야합니까?

감사합니다.

답변

2

컬렉션을 정렬하려면이 같은 호출 할 수 있습니다 :

List<MyDate> dates = ... 
Collections.sort(dates); 

MyDate가 클래스 인터페이스 Comparable를 어를 구현해야합니다을 ich는 "int compareTo (object o)"메소드가 구현되도록 요구할 것이다.

"compareTo"메서드에서는 현재 개체가 개체보다 작거나 같거나 큰지 여부를 알아낼 때까지 연도, 월 등의 게터를 호출하는 코드를 작성할 수 있습니다 "o"는 compareTo 메소드에 전달됩니다.

예 :

public int compareTo(Object o) { 
    MyDate otherDate = (MyDate) o; 
    int thisYear = this.getYear(); 
    int otherYear = otherDate.getYear(); 
    if (thisYear < otherYear) return -1; 
    if (thisYear > otherYear) return 1; 
    // Now try the month, then day etc 
} 
+0

과 같이 쉽게 작업 할 수 있습니다. 감사! – minimalpop

2

체크 아웃 비교기 http://java.sun.com/j2se/1.4.2/docs/api/java/util/Comparator.html

비교기는 당신은, Collections.sort를 다음 비교를 구현하는 자신의 비교기 객체를 정의하고 사용 방법에 인터페이스가 (당신이 날짜를 비교할 수있는 (오브젝트 1, Object2)를 비교하다 ArrayList를, 비교기)

0

이 당신의 시간/날짜 개체에 비슷한 인터페이스를 구현합니다. 그렇다면 Collections.Sort

관련 문제