java匿名内部类&数组排序

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}

猜你喜欢

转载自blog.csdn.net/AE86____/article/details/128713817
今日推荐