外部比较器---排序

外部比较器

外部比较器可以说是内部比较器的加强版,它在封装类的外面可以定义多个类来对不同的功能进行实现,如果说是内部比较器的话,重写方法,只能返回一个值,如果说有多个功能实现的话会比较麻烦。如果使用外部比较器就可以定义可能会需要的功能程序,实现起来就会相对来说简单很多。
第一步,定义排序代码实现图示:
1
源码+注释展示:

//定义一个排序方法,需要用到的时候直接在其他主方法直接调用即可
		public static void sort(Object[] arr,Comparator com){
   //定义一个排序方法
			for (int i = 1; i <= arr.length-1; i++) {
   //对数组进行遍历,定义数组比较的两个元素
				for (int j = i; j <= arr.length-1; j++) {
   					
					if (com.compare(arr[i-1], arr[j])>0) {
   //如果前面一个值大于后面一个值,那么将会执行下面的操作,否则不执行里面的语句
						Object temp = arr[i-1];//在这里主要执行的是一个交换的工作,数组大的往后放,小的往前
						arr[i-1] = arr[j];//将小的值给到i-1
						arr[j] = temp;//最后完成交换
					}
				}
			}
		}

第二步,定义一个封装类,然后使用外部排序的方法实现多个功能的实现,在需要用到要用的功能时直接进行new对象即可进行使用。图示如下:
1
2
3
正如上图所示,在封装类的外部实现接口Comparator,然后进行功能实现的程序设计。
源码+注释:

import java.util.Comparator;
public class Student{
   //实现compareTo接口
	private String name;
	private int age;
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值