1. compareTo() 메서드를 오버라이딩 해준다. 최신순(내림차순)으로 정렬하기 위해 리턴 값에 -1을 곱해줬다.

public class CompletedOrder extends Order implements Comparable<CompletedOrder> {
    String completiontime;

    CompletedOrder(){
    }

    CompletedOrder(Order order){
        super(order.orderNum, order.orderList, order.totalPrice, order.time, order.request);
        this.completiontime = getTime();
    }

    @Override
    public String toString() {
        return "\n1. 대기번호 : " + this.orderNum + "\n2. 주문 상품 목록 : " + this.orderList +"\n3. 주문 총 가격 : " + this.totalPrice + "W\n4. 요청사항 : " + this.request + "\n5. 주문 일시 : " + this.time + "\n6. 완료 주문 일시 : " +this.completiontime+ "\n";
    }

    @Override
    public int compareTo(CompletedOrder o) {
        return this.completiontime.compareTo(o.completiontime) * -1; // 최신순 정렬
    }
}

 

2. sort 메서드로 정렬해 준다. 이때 정렬 기준에 오버라이딩한 compareTo를 넣어준다.

    public void printRecentOrder(){
        System.out.println("[ 최근 완료된 주문 ]");
        
        Collections.sort(completedOrders, CompletedOrder::compareTo); // 주문 완료 처리된 순서대로 정렬

        int SIZE = completedOrders.size();
        if(SIZE >= 3){
            for (int i = 0; i <3; i++){
                System.out.println(completedOrders.get(i));
            }
        } else {
            for (CompletedOrder o : completedOrders){
                System.out.println(o);
            }
        }
    }

 

'TIL > WEEK4' 카테고리의 다른 글

팀 과제 키오스크 관리 프로젝트  (0) 2023.06.07

+ Recent posts