我的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
请问不通过数据库的排序的功能,怎样才能把如下的数据通过
编号排好序.
一.原有的数据 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
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