자바 객체 정렬은 어떻게 하나요?

조회수 37회
//여기에 코드를 입력하세요
private Product[] products = null;

private void searchFromDate(Product[] plist) {      

    }

이렇게 만든 후에 Product 라는 클래스 안에 있는 productId(제품의 제품번호) 를 오름차순으로 정렬하고 싶습니다. Collections 나 sort 함수들을 다 써봤지만 오류만 뜨고 불가능하더군요. 함수 인자를 보면 아시겠지만 int나 String이 아닌 Product[] 라는 별개의 객체타입 입니다. 예를들어 Collections.sort(plist); 로 정렬을 하려고 하면 The method sort(List) in the type Collections is not applicable for the arguments (Product[]) 이런식으로 뜹니다. sort도 마찬가지고요. 이 객체의 productId를 오름차순으로 정렬하는 방법을 알고싶습니다.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    Product라는 클래스의 정렬 기준을 정의하지 않았기 때문입니다.

    class Product implements Comparable<Product> {
    
        @Override
        public int compareTo(Product p) {
            return getProductId() - p.getProductId();
        }
    }
    

    Product 선언하실 때 이런 느낌으로 compareTo를 정의하면 될거예요

    그래도 잘 모르시겠다면 java comparable 검색해보세요

    • 그 한가지 더 질문이 있는데 출력을 System.out.print("Product :"+plist[i].toString()); 이렇게 하는데 저렇게 정렬된 순서대로 toString을 이용하여 출력을 할려면 어떻게 해야하나요? dkxm99 2020.6.28 17:04
    • 정렬이 되면 그냥 순서대로 출력하면 되는거 아닌가요? 어떤 상황인지를 잘 모르겠네요 HIAOAIH 2020.6.29 10:14

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.