java基础之Comparable和Comparator

一、Comparable接口

此接口的目的是进行排序

1、接口介绍

public interface Comparable<T> {

public int compareTo(T t);
	
}
  • 首先实现了这个接口的类必须实现compare(T t)方法,以后这个类就可以排序了(也就是可以直接用Collections.sort或Arrays.sort进行排序)
  • 下面来个例子
@Lombok
public class hello implements Comparable<hello>{

   	   private String name;

       private int age;
	
		@Override
       public int compareTo(Person o) {
			  //当然你类里面可以有很多属性,根据其他的属性进行判断
              return this.age-o.age;

       }
}

  • 好啦,有了上面的类后,以后我们new 出来的对象可以放到一个对象数组,或者象放到ArraysList里面呀,然后调用Collections.sort(xxx)或Arrays.sort(xxx)进行排序

二、Comparator接口

1、接口介绍

public interface Comparator<T> {

int compare(T o1, T o2);

    boolean equals(Object obj);

}
  • 首先一个类:如果想要实现其可以不同对象可以进行比较的话,可以实现Comparator接口,覆写它的方法boolean equals(Object obj);可以实现类的大小比较。

2、写一个自己的比较器

package comparator;

import java.util.Comparator;

public class MyComparator implements Comparator<hello> {

       @Override

       public int compare(hello h, hello h2) {

              return h1.getAge() - h2.getAge();

       }

}

  • 比较原则:int compare(T o1, T o2) 是“比较o1和o2的大小”。返回“负数”,意味着“o1比o2小”;返回“零”,意味着“o1等于o2”;返回“正数”,意味着“o1大于o2”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值