总结一下java 中的两种排序工具:

Arrays.sort() : 主要针对 数组类型排序,如果数组里面的元素是对象,要按对象属性排序的话,需要重写 Comparator() 函数,重写里面的  int compare()函数;

Collections.sort(): 主要是针对集合排序,如:list。 当然如果数组 array[i] 的每项是一个list 也可以直接用。与Arrays.sort()一样,重写 Comparator()函数。

注意:两种方式重写的函数方式是一样的,单词不要写错哟: Comparator,compare


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; public class Main1 {
public static void main(String[] args) {
man[] mans = new man[3];
mans[0] = new man(1);
mans[1] = new man(24);
mans[2] = new man(5); Comparator<man> cmp = new My_Comparator ();
//对象数组排序:
Arrays.sort(mans, cmp);
for(man i : mans) {
System.out.print(i.a + ", ");
}
System.out.println("---------"); //对象链表排序:
List<man> list = new ArrayList<>();
list.add(new man(3));
list.add(new man(2));
list.add(new man(1));
// Collections.sort(list, new Comparator<man>() {
// public int compare(man x, man y) {
// return y.a - x.a;
// }
// });
// 将上面的简化为下面的:
Collections.sort(list, cmp);
for(man i : list) {
System.out.print(i.a + "; ");
}
}
}
class My_Comparator implements Comparator<man>{
@Override
public int compare(man o1, man o2) {
return o2.a - o1.a;
}
}
class man{
public int a;
man(int x){
this.a = x;
}
}

  

39-java中Arrays.sort 和 collections.sort()总结的更多相关文章

  1. Arrays.sort 与 Collections.sort

    代码如下: package com.wangzhu.arrays; import java.util.Arrays; import java.util.Collections; public clas ...

  2. 48- java Arrays.sort和collections.sort()再次总结

    今天又碰到一个新BUG,记下来. 一直报空指针异常,我就很奇怪了,怎么就空指针了呢,我输出时,也能输出东西呀. 原来Arrays.sort() 和 Collections.sort() 都是对整个数组 ...

  3. Arrays.sort和Collections.sort实现原理解析

    Arrays.sort和Collections.sort实现原理解析 1.使用 排序 2.原理 事实上Collections.sort方法底层就是调用的array.sort方法,而且不论是Collec ...

  4. sort()排序 collections.sort();

    1.main方法: public class Test { public static void main(String[] args) { /** * * sort()方法详解 * 1.Collec ...

  5. Java中Arrays.sort()和Collections.sort()

    1.简单示例 sort方法的使用非常的简单明了,下面的例子中,先定义一个比较Dog大小的Comparator,然后将其实例对象作为参数传给sort方法,通过此示例,你应该能够快速掌握Arrays.so ...

  6. 关于Java中Arrays.sort()方法TLE

    最近一直在练用Java写题,今天无意发现一道很简单的二分题(链接),我一开始是直接开int[]数组调用Arrays.sort()去排序,没想到TLE了,原来是因为jdk中对于int[]的排序是使用快速 ...

  7. 5.4 集合的排序(Java学习笔记)(Collections.sort(),及Arrays.sort()底层分析)

    1.Comparable接口 这个接口顾名思义就是用于排序的,如果要对某些对象进行排序,那么该对象所在的类必须实现 Comparabld接口.Comparable接口只有一个方法CompareTo() ...

  8. java中Arrays.sort()对二位数组进行排序

    int [][]a = new int [5][2]; //定义一个二维数组,其中所包含的一维数组具有两个元素 对于一个已定义的二位数组a经行如下规则排序,首先按照每一个对应的一维数组第一个元素进行升 ...

  9. 集合(一)-Java中Arrays.sort()自定义数组的升序和降序排序

    默认升序 package peng; import java.util.Arrays;  public class Testexample { public static void main(Stri ...

随机推荐

  1. 在page cache中的页,如果当时没有进程read或者write,引用计数到底该为多少

    在一次偶然的机会,在研究如何降低pagecache占用的过程中,走查了 invalidate_mapping_pages的代码: 通过调用 __pagevec_lookup 在radix树中收集一部分 ...

  2. bug提单规范

    一.提单模板 标题:[项目组][模块][子模块][发生原因]问题简要描述描述:[预置条件] 有就写清楚,没有就写无[操作步骤]1.XXXXX2.XXXXXX3.XXXXX[实际结果] XXXXX[预期 ...

  3. Hosts

    Hosts "C:\Windows\System32\drivers\etc\hosts" [最新]2018 hosts 持续更新[更新于:2018-11-13] 本页面WordP ...

  4. tensorflow中run和eval的区别(转)

    在tensorflow中,eval和run都是获取当前结点的值的一种方式. 在使用eval时,若有一个 t 是Tensor对象,调用t.eval()相当于调用sess.run(t) 一下两段代码等效: ...

  5. Incompatible shapes during the half way training---Invalid argument: Incompatible shapes: [1,63,4] vs. [1,64,4]

    这是tensorflow model 中我使用它的faster--cnn,但是就是训练过程中,代码执行到一半 一般是step=40~120的时候就报错了: INFO:tensorflow:global ...

  6. CSS----学习

    CSS---表现层,修饰和表现html文档,为了解决结构层和表现层分离的问题. 通过CSS极大的提高了工作效率,方便工作人员维护和管理CSS:层叠样式表,目前用的最广泛的css版本为css2,最新版本 ...

  7. mysql数据库解决中文乱码的问题

    http://jingyan.baidu.com/article/647f0115937be97f2148a894.html 一个一劳永逸的方法, 修改mysql的配置文件my.ini 在这个配置文件 ...

  8. zabbix监控指定端口

    生产上经常会监控某些具体端口状态,下面介绍具体步骤: 主机名 ip 操作系统 zabbix版本 zabbix-server 172.27.9.63 Centos7.3.1611 zabbix_serv ...

  9. openstack(Pike 版)集群部署(七)--- Cinder 部署

    一.介绍 参照官网部署:https://docs.openstack.org/cinder/pike/install/index-rdo.html 继续上一博客进行部署:http://www.cnbl ...

  10. 【资料整理】ADO.NET

    ADO.NET: 1.SYSTEM.DATA 命名空间下类的集合的统称,用于操作 连接数据库的 它提供了统一的编程接口,可以操作不同的数据库 数据库实例:默认实例(MSSQLSEVER)和命名实例(M ...