java接口Comparable_Java常用接口:Comparable接口的实现与使用

本文将介绍Comparable接口以及,使用其对自定义对象比较大小和排序

下面是Comparable接口的声明以及作用,可以看到它可以使继承他的类进行比较大小,只需要调用实现类的compareTo方法即可

public interface Comparable< T >

This interface imposes a total ordering on the objects of each class that implements it. This ordering is referred to as the class’s natural ordering, and the class’s compareTo method is referred to as its natural comparison method.

下面是这个compareTo的定义

c92b0a043006d7a28405d16289710e2b.png

就是告诉我们利用

目前对象.compareTo(需要比较的对象)

实现比较大小,

如果返回值等于零:o1=o2

返回值大于零则o1>o2

返回值小于于零则o1

接下来就是例子:

class P implements Comparable

{

String name;

int age;

public P(String name,int age) {

this.name = name;

this.age = age;

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + "]";

}

@Override

public int compareTo(P o) {

return this.age-o.age;

}

}

他很类似Comparator,如果有兴趣可以参考java常用类:Comparator

只不过他是需要被我们要排序的类实现,如果我们想要排序一个自定义类,或者让一个自定义类可以比较大小就需要实现Comparable接口。上面写完了如何实现接口,下面说一下如何使用接口:

public class ComparableTest {

public static void main(String[] args) {

List

personList = new ArrayList

();

personList.add(new P("ace",22));

personList.add(new P("xb",21));

personList.add(new P("glm",36));

personList.add(new P("sxy",20));

System.out.println("比较大小");

P ace = new P("ace",22);

P xb = new P("xb",21);

String result = ace.compareTo(xb)==0?"一样大":ace.compareTo(xb)>0?"ace大":"xb大";

System.out.println(result);

System.out.println("按照年龄");

Collections.sort(personList);

for(P p:personList)

System.out.println(p);

System.out.println();

}

}

6669b1638170c2d62c16520ad91d8c8c.png

Collections工具类可以对List这类继承Collection的类进行操作,之后我会写到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值