博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSe:Comparator
阅读量:6241 次
发布时间:2019-06-22

本文共 1195 字,大约阅读时间需要 3 分钟。

今天,公司里有一个萌萌的妹子问我java 中的comparator是怎么回事。参数分别是什么,返回值又是什么,为此,我写了一个简单的程序告诉了她:

public static void main (String[] args){    List
list = new ArrayList
(Arrays.asList(new String[]{"1", "a", "222", "221","221"})); Collections.sort(list,new Comparator(){
public int compare(String str1, String str2){                   int r = str1.compareTo(str2);                   System.out.println(str1 + "-" + str2 +"=" + r);                   return r;             }     }) ;    System.out.println(list.toString());}

 

执行结果:

list a-1=48                                                [1, a]222-a=-47                                             222-a=-47                                             221-1=1                                               [1, 222, a]221-222=-1                                            221-1=1                                               [1, 221, 222, a]221-221=0                                             [1, 221, 222, 222, a][1, 221, 221, 222, a];

 

通过这个执行结果,我们可以看出一下几点:

以compare(a1, a2)为例:

1)其中a1 是要添加的数数据, a2是从集合中取出来的与a1比较的数据

2) 返回值 >0时,放后面。

       返回值<0 时,放前面。

3)集合默认是升序排序的。如果想要降序排序,你在比较时,应该是 a2 - a1 (也就是拿第二个参数跟第一个比较)。

 

另外:

4)List 在排序时,采用的是二分法排序。

 

转载地址:http://ekdia.baihongyu.com/

你可能感兴趣的文章
用 Quartz 画聊天对话框背景实例
查看>>
Quartz2D简单绘制之饼状图
查看>>
你优化系统的目标是什么?
查看>>
SVN(64位)报 Failed to load JavaHL Library. 的解决方法
查看>>
基本运算符
查看>>
黄聪:WordPress 多站点建站教程(三):主站如何调用子站的文章内容、SQL语句如何写?...
查看>>
Activity的启动模式 4种launchMode Intent.FLAG_NEW_TASK 详解
查看>>
hdu 2254 奥运 **
查看>>
数据结构基础
查看>>
UltraISO制作ISO镜像文件
查看>>
ASP.NET MVC 之自定义HtmlHelper
查看>>
声明顺序
查看>>
memcpy内存重叠的解决
查看>>
保存和恢复activity的状态数据[转]
查看>>
JS中call、apply的用法说明
查看>>
C#中对于Enum类型的遍历
查看>>
使用tomcat启动dubbo项目
查看>>
crontab + shell脚本实现文件重命名
查看>>
谈谈-ConstraintLayout完全解析
查看>>
fluent-ffmpeg 常用函数
查看>>