2014-11-02 68 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 

} 

}