java——Arrays类

自己定义示例

冒泡的if判断是精髓,影响着从大还是从小,所以可以从用接口中compare()比较两个大小返回的值,他比较的方式是两个数相减

替换之后全是99

import java.util.Arrays;
import java.util.Comparator;

/*
@author:我与java相爱相杀---c语言梦开始的地方
今天又是努力学习的一天!!!!
ArrayExercise.java
案例:自定义Book类,里面包含name和price,按price排序(从大到小)。要求使用
两种方式排序,对对象的某个属性排序,有一个Book[] books=5本书对象.
使用前面学习过的传递 实现Comparator接口匿名内部类,也称为定制排序。[同学们
完成这个即可10min]
*/public class Main {
    public static void main(String[] args) {
       Book book[]=new Book[5];
       book[0]=new Book("后来",22);
        book[1]=new Book("好的",19);
        book[2]=new Book("枚举",12);
        book[3]=new Book("哈皮",32);
        book[4]=new Book("小时",234);
        Arrays.sort(book, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                //因为传进来的是父类类型,要给他强转成需要的Book类型
               Book a=(Book) o1;
               Book b=(Book) o2;
               //因为价格是double型,返回值我们是int无法更改,所以我们拿个double值接收一下
              double priceval=a.getPrice()-b.getPrice();
              if (priceval>0)
              {
                  return 1;
              }
              else if (priceval<0)
                  return -1
                  ;
              else
                return 0;
            }
        });
        System.out.println(Arrays.toString(book));

    }
}
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 void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值