import java.util.Arrays;
import java.util.Comparator;
/**
* @author xinrong
* @version 1.0
*/
public class ArraySort {
public static void main(String[] args) {
Book[] books = new Book[4];
books[0] = new Book("红楼梦", 200);
books[1] = new Book("水浒传", 600);
books[2] = new Book("三国演义", 100);
books[3] = new Book("西游记", 500);
System.out.println("======排序前数组======");
for (int i = 0; i < books.length; i++) {
System.out.println(books[i].toString());
}
Arrays.sort(books, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Book book1 = (Book)o1;
Book book2 = (Book)o2;
double flag = book1.getPrice()-book2.getPrice();
if(flag > 0){
return 1;
}else if (flag < 0){
return -1;
}else
return 0;
}
});
System.out.println("======排序后数组======");
for (int i = 0; i < books.length; i++) {
System.out.println(books[i].toString());
}
}
}
class Book {
private String name;
private double price;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
}
运行结果:
======排序前数组======
Book{name='红楼梦', price=200}
Book{name='水浒传', price=600}
Book{name='三国演义', price=100}
Book{name='西游记', price=500}
======排序后数组======
Book{name='三国演义', price=100}
Book{name='红楼梦', price=200}
Book{name='西游记', price=500}
Book{name='水浒传', price=600}