自定义排序类型接口的实现

方法一:

使对象类实现Comparable接口(是泛型接口),在对象类中进行对compareTo方法来实现

使用方法:将对象类进行实现该接口。 该接口实际上还是需要配合Comparable进行来使用的。

进行重写CompareTo方法进行对执行代码的修改进行自定义排序规则。

//但实质还是用对象的数,属性进行排序属于是Arrays的sort方法

在进行对Comparetor方法进行重写时的规则:

如果左边的数据值大于右边的数据值,需要返回一个正整数。

如果左边的数据值小于右边的数据值,需要发挥一个负整数。

如果左边的数据值等于右边的数据值,需要返回0.

默认同样也是使Arrays的sort方法默认升序排序(由低到高)

等价于用 return this.属性名-o.属性名;(能直接获取正负值,该方法的返回值类型为int)

//此时由于方法类在对象类下,直接进行Arrays的遍历方法时输出的时数据的地址,如果需要输出数据的具体内容,需要在对象类下进行对toString方法的重写。

如果需要进行降序排序:可以直接改为o.属性名-this.属性名;

后在使用测试类中使用Arrays的sort方法即可

方法二:在sort方法中使用Comparator接口中的匿名类,然后自己创建排序的规则

使用时的规则和ComparaTo方法一样。返回值类型也是int

如果左边的数据值大于右边的数据值,需要返回一个正整数。

如果左边的数据值小于右边的数据值,需要发挥一个负整数。

如果左边的数据值等于右边的数据值,需要返回0.

默认同样也是使Arrays的sort方法升序排序(由低到高)

如果数据的类型是double等浮点型数据时,建议使用java提供的返回值语序。

但也可以通过使用Double(包装类)提供的比较语序来进行return来简化语序。

格式:return Double.compare(对象代号1(/左).getxxx,对象代号2(/右).getxxx) ,getxxx是对象类创建的get set方法 默认也是升序如果需要进行降序将方法的对象列表在执行体中颠倒即可

后在使用测试类中使用Arrays的sort方法即可

-------------------

在 对double数据类型进行比较时,可以使用包装类提供的方法在进行比较(避免使用直接相减返回值为double不是int类型无法比较的问题,而当调用方法之后返回的数据类型是int这时在返回到调用的compare方法即可)//在Double包装类下的写好的方法返回值符合数据为int相当于两次调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值