我的list集合中可放置一个BOOK对象,book有编号,有等级
请问不通过数据库的排序的功能,怎样才能把如下的数据通过
编号排好序.
       
一.原有的数据 bid          bdengji              L01           A
              L0101         B
              L03           C
              L030101       D
              L0301         E
              L02           F二.想得到的效果,既页面要显示的有序效果
              bid          bdengji
              L01           A
              L0101         B
              L02           F
              L03           C
              L0301         E
              L030101       D        

解决方案 »

  1.   

    其实很简单的,多加强下java的集合类的学习吧
    public class MyTest{
     public static void main(String[] args){
    List<Book> books = new ArrayList<Book>(); 
    Book book = new Book("L01" , "A");
    books.add(book);
    book = new Book("L0101" , "B");
    books.add(book);
    book = new Book("L03" , "C");
    books.add(book);
    book = new Book("L030101" , "D");
    books.add(book);
    book = new Book("L02" , "E");
    books.add(book);
    book = new Book("L01" , "A");
    books.add(book);
    book = new Book("L0111" , "A");
    books.add(book);

    Map<String , Book>  bookMap = new HashMap<String, Book>();
    for(Book b : books)
    bookMap.put(b.getNumber(), b);

    Set<String> keySet = bookMap.keySet();
    Object[] objs = keySet.toArray();
    Arrays.sort(objs);

    books = new ArrayList<Book>(); 
    for(Object o : objs){
    books.add(bookMap.get(o));
    }

    for(Book b : books){
    System.out.println(b.getNumber() + "\t" + b.getName());
    }
    }
    }class Book{
    String number;
    String name;

    public Book() {
    super();
    }
    public Book(String number, String name) {
    super();
    this.number = number;
    this.name = name;
    }
    public String getNumber() {
    return number;
    }
    public void setNumber(String number) {
    this.number = number;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }


    }输出结果:
    L01 A
    L0101 B
    L0111 A
    L02 E
    L03 C
    L030101 D