2011-03-18 2 views
7

params (String bookNum, String bookTitle, int qoh, double bookPrice)를 사용하여 BookInventory 객체의 arraylist를 생성해야하는 과제가 있습니다. 여기서 bookNum은 책의 하이픈으로 연결된 ISBN 번호입니다. 이 배열을 만든 후에는 Collections 클래스의 sort 메서드를 사용해야한다. 내 엔티티 BookInventory 클래스에서, bookNum (String)에 의해 arraylist를 정렬하게 될 compareTo()를 작성해야합니다. 어떻게해야합니까? 이것은 이것에 대한 나의 첫 경험이고, 나는 이해하지 못합니다.공용 int compareTo() 메서드 작성하기 자바

답변

16

이것은 당신이 시작할 수 있어야합니다

public class BookInventory implements Comparable<BookInventory> { 

    // code 

    public int compareTo(BookInventory other){ 
    return bookTitle.compareTo(other.bookTitle); 
    } 

    //code 
} 

일을이 Comparable를 구현하는 것입니다에서 당신은 당신이 ArrayList를 정렬 할 때 compareTo 메소드가 자동으로 호출 이잖아 사용자 정의를 구현할 수 있도록 빼앗아.

체크 아웃, compareTo와 및 주문에 대한 자세한 내용을 읽으려면이 :

http://download.oracle.com/javase/tutorial/collections/interfaces/order.html

+0

빠른 노트입니다> 그 무시 같음 달리, 입력 여기에있는 매개 변수는 Object 유형이 아니어야합니다. – anon58192932

1

당신이 a를 documentation for the Collections 클래스를 보면, 당신이 두 sort mwethods를 구현하는 것을 볼 수 있습니다. 하나는 어떤 종류의 List과 함께 Comparator 개체를 사용하여 목록 요소를 비교합니다. 다른 하나는 Comparable을 구현하는 모든 종류의 객체 중 List을 사용합니다. compareToComparable으로 정의되었으므로 (Comparatorcompare을 구현해야 함) 클래스는 implements Comparable<BookInventory>으로 선언되어야합니다. 즉, compareTo 메소드를 가져야합니다. 귀하의 방법이 무엇을해야하는지에 대해서는 documentation for Comparable.compareTo(T)을 참조하십시오. 유용한 정보를 찾으려면 String 방법 compareTo(String)이 유용 할 것입니다.

1

compareTo() 메서드는 여러 속성이있는 두 개체를 비교하는 데 사용됩니다. 비교 된 개체가 더 큰지 나타내는 정수를 반환합니다. 비교되는 객체가 자연 순서를 갖는 속성을 갖는 것이 더 합리적입니다.

반환 값 :

  • 0보다 작 -> 객체에 전달하기 전에 개체가 있음을 나타냅니다.
  • 이상 0 -> 객체입니다 0-
  • 동일 객체로 건네 후 - 두 개체가 동일한 수준 읽는 사람을위한
+1

"9"-> ""0 "이됩니다. –

+0

죄송합니다. 뚱뚱한 손가락 타이핑. 마지막 옵션은 "0과 같아야합니다." @ 폴 축복. 고맙습니다 –

관련 문제