2016-12-03 13 views
0

며칠 동안 문제가 발생하여 그 후에 처리 할 수 ​​없습니다. 저장하는 arrayList가 있습니다.arrayList의 요소를 정렬 할 때 문제가 발생했습니다.

내 endTime- 사용자를 기반으로 내 이벤트를 정렬 할
public class Application { 

Time startTime = new Time(hour,minute); 
Time endTime = new Time((startTime.getHour()), (startTime.getMinute() + duration)); 
Event e1 = new Event("Lecture", title, startTime, endTime); 

는 내가 갖는 문제는 endTime- 사용자가 내 Time 클래스에서 시간과 분을 사용 startTime을 기반으로한다는 것입니다. compareTo을 사용해 보았을 때 혼란스러워졌습니다. 내 Time 클래스에 넣었지만 인스턴스를 비교하려면 내 Event 클래스에 있어야한다는 것을 깨달았습니다. compareTo를 사용하여 endTimes를 비교하는 방법과 정렬을 어떻게 출력합니까? 내 행사에 compareTo와를 넣어했을 때 나는 또한 I extend 클래스, 또는 내가 그것을 구현해야 내가 endTimes을 비교은 compareTo을 사용하는 방법 compareTo

답변

0

,

을 사용할 수

The method sort(List<T>) in the type Collections is not applicable for the arguments (ArrayList<Event>) 

      Collections.sort(events); 

public Event(String type, String title, Time startTime, Time endTime) { 
    this.type = type; 
    this.title = title; 
    this.startTime = startTime; 
    this.endTime = endTime; 
} 

private int minute; 

public Time(int hour, int minute) { 
    this.minute = hour * 60 + minute; 
} 

있어

당신의 Time 클래스에 compareTo 메소드를 호출 및 부품 ㅇ로 결과를 사용하는 것이 당신의 Event 클래스의 compareTo 방법 f 이벤트의 순서를 결정합니다.

어떻게 출력합니까?

한 가지 방법은 루프를 사용하고 print 또는 println을 호출하는 것입니다. 내 행사에 compareTo와를 넣어했을 때

내가 가지고 : List<Event>을 할

"The method sort(List<T>) in the type Collections is not applicable for the arguments (ArrayList<Event>)"events의 유형을 선언합니다.

덧붙여서, compareTo를 이벤트에 넣는 것은 그것을 일으키지 않았습니다. 그것은 또 다른 변화/또 다른 실수로 인한 것입니다.

또한 나는 클래스를 확장 할 수도 있고, 나는 compareTo와

는 AS 자신의 유형으로 Comparable 인터페이스를 "구현"에 필적 필요 할 필요가 모든 클래스를 사용하도록 구현해야 할 것이다 타입 파라미터; 예 :

public class Event implements Comparable<Event> { 

그런 다음 compareTo 메소드의 구현을 제공해야합니다.

+0

내'Time' 클래스의'compareTo' 메소드를'Event'의'compareTo'에서 어떻게 호출할까요? – ProgrammingBeginner24

+0

개체의 인스턴스에서 * 모든 * 메서드를 호출하는 것과 같은 방식입니다! –

관련 문제