2014-11-02 64 views
-2
的Java對象進行排序你好

我想我已經學會了如何在Java對象使用比較請看看下面我的代碼,看看,如果我在正確的軌道使用比較

public class Books{ 

    private String bookName; 
    private String bookDesc; 
    private int quantity; 

    public Books(String bookName, String bookDesc, int quantity) { 
     super(); 
     this.bookName = bookName; 
     this.bookDesc = bookDesc; 
     this.quantity = quantity; 
    } 

    public String getbookName() { 
     return bookName; 
    } 
    public void setbookName(String bookName) { 
     this.bookName = bookName; 
    } 
    public String getbookDesc() { 
     return bookDesc; 
    } 
    public void setbookDesc(String bookDesc) { 
     this.bookDesc = bookDesc; 
    } 
    public int getQuantity() { 
     return quantity; 
    } 
    public void setQuantity(int quantity) { 
     this.quantity = quantity; 
    } 
} 
+2

您忘了發佈內容嗎?你只發布了一個POJO類型。 – 2014-11-02 18:23:50

+1

這是Stackoverflow而不是[CodeReview](http://codereview.stackexchange.com/)。在那裏嘗試。 – Tom 2014-11-02 18:29:01

+0

基於哪個領域你想排序類圖書的對象 – AsSiDe 2014-11-02 18:29:20

回答

0

上,如果你想排序排序您的書籍列表根據書名,試試這個:

import java.util.Collections; 
import java.util.Comparator; 
import java.util.LinkedList; 
import java.util.List; 

public class Books implements Comparator<Books>{ 

private String bookName; 
private String bookDesc; 
private int quantity; 

public Books(String bookName, String bookDesc, int quantity) { 
    super(); 
    this.bookName = bookName; 
    this.bookDesc = bookDesc; 
    this.quantity = quantity; 
} 

@Override 
public String toString() { 
    return bookName+","+bookDesc+","+quantity; 
} 

public String getbookName() { 
    return bookName; 
} 
public void setbookName(String bookName) { 
    this.bookName = bookName; 
} 
public String getbookDesc() { 
    return bookDesc; 
} 
public void setbookDesc(String bookDesc) { 
    this.bookDesc = bookDesc; 
} 
public int getQuantity() { 
    return quantity; 
} 
public void setQuantity(int quantity) { 
    this.quantity = quantity; 
} 

@Override 
public int compare(Books b1, Books b2) { 

    return b1.getbookName().compareTo(b2.getbookName()); 
} 

public static void main(String[] args) { 

    Books b1=new Books("Here You Go", "General", 10); 
    Books b2=new Books("R You There", "General", 20); 

    List<Books>list=new LinkedList<Books>(); 
    list.add(b2); 
    list.add(b1); 

    System.out.println(list);//unsorted 

    Collections.sort(list, b1);//passing list and Comparator to the sort() method 
    //since Books implements Comparator interface any Books object "IS-A" Comparator. 
    System.out.println(list);//sorted 

} 

}