查了很多博客,了解挺多有关cmp函数的问题。所以在这里来总结一下写法。。

我们通常可以用这个cmp函数来改变Arrays.sort()函数的默认排序方法。这里我们以升序排序为例、

基本方法

int compare(Object o1, Object o2) 返回一个基本类型的整型

如果要按照升序排序,

则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)

如果要按照降序排序

则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)

int compare(Object o1, Object o2);

我们注意到传入cmp函数是类。所以我们在输入时,应该以类的形式输入。

排序sort函数格式

Arrays.sort(数组名, 起始下标, 终止下标, new cmp());

上完整代码

import java.util.Arrays;

import java.util.Comparator;

import java.util.Scanner;

import java.util.*;

class shu ///创建类

{

int x;

}

class cmp implements Comparator {

/*

* 因为上面指定了类型,所以此处可以直接(he A,he B) 否则要写成(Object A,Object

* B),再强制转换成he类型:((he)A).x

*/

public int compare(shu A, shu B) ///降序排序

{

if(A.x

{

return 1;

}

else if(A.x==B.x)

{

return 0;

}

else

{

return -1;

}

}

}

public class Main {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

while (in.hasNext()) {

shu num[] = new shu[100];///创建类数组

int n;

n = in.nextInt();

for (int i = 0; i < n; i++) {

num[i]=new shu();///这个地方容易漏

num[i].x = in.nextInt();

}

Arrays.sort(num, 0, n, new cmp());

for (int i = 0; i < n; i++) {

System.out.println(num[i].x);

}

}

}

}

运行结果

这样就可以通过cmp函数来改变sort的默认排序方式

java自定义排序函数_JAVA中sort函数的 自定义排序 cmp函数的写法 【java】【cmp】...相关推荐

  1. java中的排序方法_Java中8种常见的排序方法

    本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分 ...

  2. java txt html格式_java中xml(txt/html等格式)解析问题,请教java高手,请勿粘贴其他网页上的内容(能查的都看了)。...

    目的:通过对网页内容解析,获得需要的内容,如网页的标题Title,主要内容,描述信息:而里面的广告.超链接.无关紧要的信息统统不要,从而达到对用户上网行为的分析的目的.下面是我... 目的:通过对网页 ...

  3. Java中sort实现降序排序

    Java中sort实现降序排序 利用Collections的reverseOrder方法: import java.util.Arrays; import java.util.Collections; ...

  4. java中有没有栈_Java中堆和栈有什么区别

    stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...

  5. java throws的作用_Java中throws..throw的使用与说明

    throws语句 throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常.对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型.如果异常的 ...

  6. java 基本类型 引用_java中 引用类型 和 基本类型 有何区别?

    栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的(对象从中分配空间.这些对象通过new.newa ...

  7. java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件

    获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...

  8. java log日志函数_Java 中的 AWS Lambda 函数日志记录 - AWS Lambda

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. Ja ...

  9. php中asort 排序语句,php中的几个经典排序函数(sort,asort,ksort等)

    1 2 3 4 5 6 7 8sort() 函数用于对数组单元从低到高进行排序. rsort() 函数用于对数组单元从高到低进行排序. asort() 函数用于对数组单元从低到高进行排序并保持索引关系 ...

最新文章

  1. 迪杰斯特拉算法。简单理解。内含示例
  2. ---随心买统计查询
  3. 自定义控件:视差特效
  4. 用sk-learn的pipline的时候,现:TypeError: ‘Pipeline‘ object is not subscriptable
  5. Django 权限管理
  6. SpringBoot Bean配置
  7. 猎豹浏览器网页声音怎么关闭
  8. 关于能ping通服务器但ssh登陆不上的问题
  9. php redis zset 延迟队列_用PHP+Redis实现延迟任务,实现自动取消订单
  10. FISCO BCOS Transaction execution error合约执行失败原因
  11. 数据结构题集(c语言版)严蔚敏答案pdf
  12. R语言缺失值判断以及处理
  13. 2018高中计算机会考知识点,2018高中生物会考知识点 高中文科生生物会考知识点...
  14. 计算机文档加密如何解锁,bitlocker怎么解锁_bitlocker解锁方法
  15. win10提高开机速度只需要5步
  16. 关于pr的一些实用小知识
  17. 留学生 电脑安全与维护手册 (留学须知)
  18. 电源开关电源200W 12V 24V,电源架构PFC+LLC+同步整流,高效率高功率因数
  19. 虚拟内存,页表,快表,多级页表,倒排页表
  20. EFR32芯科zigbee学习文档资源总结

热门文章

  1. html - 好友列表 - 头像为名字最后一个字
  2. 如何评价Sparse R-CNN,目标检测未来会如何发展?
  3. 图片素材网站总结--高清大图、免费下载、无需版权、创意趣味
  4. uni-app发行微信小程序失败
  5. 编程英语:常见代码错误 error 语句学习(14)
  6. 推荐几个好用富文本框
  7. 汽车电子_EMC测试_CE试验整改
  8. 激光镜像 傻瓜方法 c++
  9. dede手机站对应的php,织梦dedecms配置手机wap站点并绑定二级域名
  10. OpenCV系列之图像去噪 | 五十八