comparable 和 comparator傻傻分不清楚?

        最近看了Jdk1.8流式数据,看到了comparable接口,同时想到了comparator,霎时间懵逼了,因为这个一直觉得比较混淆。但是在看了各种大佬的博客之后,才慢慢领悟过来,人们口中说的“内部比较器“和“外部比较器”是个什么东东,一下是我的一个小例子,应该是很浅显易懂的:

Person1实现了Comparable接口,内部比较器,需要自身override接口的方法

package collections; 
public class Person1 implements Comparable<Person1> {    
	private String name; 
	private int age; 
	public Person1(String name, int age) {
		 this.name = name; this.age = age; 
	} 
	@Override public int compareTo(Person1 p) {
	 return this.age-p.age; 
	} 
}


实现Comparator接口,外部比较器,不用自身override接口的方法,全部都包含在Collections,方法体里面

Collections.sort(list2,new Comparator<Person2>(){ 
	@Override public int compare(Person2 p1, Person2 p2) {
		 if(p1 == null || p2 == null){
		     return 0;           
		}    	
		return p1.getAge()-p2.getAge();
	} 
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值