先看一下接口

Arrays.sort(T[],Comparator<? super T> c);

comparator要重写compare方法

compare方法大概长这样,返回值>0,就是o1大,<0,o2大,等于零一样大

public int compare(Object o1,Object o2) {
return ...;
}

知道了上面的接口长相和compare方法格式之后,就可以写Arrays.sort()了

Arrays.sort(T[],new Comparator
@Override
public int compare(Object o1,Object o2){
return...;
});
//lambda表达式写法
Arrays.sort(T[],(o1,o2)->...)

比如重写一个n*2的二维int数组的Arrays.sort

int[][] arr = new int[3][2];
Arrays.sort(arr,(a,b)->{
if(a[0]!=b[0]){
return a[0]-b[0];
}else{
return a[1]-b[1];
}
});

Java Arrays.sort()重写comparator方法的更多相关文章

  1. Java Arrays.sort相关用法与重载

    Java Arrays.sort() Java中的数组排序函数, 头文件 import java.util.Arrays; 相关API Arrays.sort(arys[]) Arrays.sort( ...

  2. Java Arrays.sort源代码解析

    前提: 当用到scala的sortWith,发现: def sortWith(lt: (A, A) ⇒ Boolean): List[A] // A为列表元素类型 根据指定比较函数lt进行排序,且排序 ...

  3. JAVA中ArrayList重写比较方法

    ArrayList的sort方法重写: 当ArrayList中存放的为含有多个成员变量的数据类型时,在进行sort排序时要重写比较方法,一般都写在这个数据类型类的内部如: package 算法竞赛入门 ...

  4. 【原创】关于java对象需要重写equals方法,hashcode方法,toString方法 ,compareto()方法的说明

    在项目开发中,我们都有这样的经历,就是在新增表时,会相应的增加java类,在java类中都存在常见的几个方法,包括:equals(),hashcode(),toString() ,compareto( ...

  5. Java关于List<String> 进行排序,重写Comparator()方法

    1.对list进行排序,list中的参数类型是Stirng,参数的格式不完全一样,例如有null,"","51003","510020"等 ...

  6. Collections集合工具类的方法_sort(List)和sort(List,Comparator)方法

    Comparator比较器 我们还是先研究这个方法 public static <T> void sort(List<T> list):将集合中元素按照默认规则排序. 不过这次 ...

  7. java继承 子类重写父类方法

    package com.addd; //多态 public class Sld { private String name = "zhangsan"; public Sld() { ...

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

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

  9. Java8 Collections.sort()及Arrays.sort()中Lambda表达式及增强版Comparator的使用

    摘要:本文主要介绍Java8 中Arrays.sort()及Collections.sort()中Lambda表达式及增强版Comparator的使用. 不废话直接上代码 import com.goo ...

随机推荐

  1. Android Stuio让我濒临崩溃的bug之cause: unable to find valid certification path to requested target

    •问题描述 像往常一样,打开 $android studio$ 开启愉快的开发之旅: 写着写着,右下角弹出一个对话,说 $android studio$ 有新版本可更新: 有新版本为何不用,果断点击 ...

  2. 答应我,别在go项目中用init()了

    前言 go的 init函数给人的感觉怪怪的,我想不明白聪明的 google团队为何要设计出这么一个"鸡肋"的机制.实际编码中,我主张尽量不要使用init函数. 首先来看看 init ...

  3. java面试-阻塞队列

    一.阻塞队列 当阻塞队列是空,从队列中获取元素的操作会被阻塞 当阻塞队列是满,往队列中添加元素的操作会被阻塞 二.为什么用,有什么好处? 我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为 ...

  4. Java读取图片exif信息实现图片方向自动纠正

    起因 一个对试卷进行OCR识别需求,需要实现一个功能,一个章节下的题目图片需要上下拼接合成一张大图,起初写了一个工具实现图片的合并,程序一直很稳定的运行着,有一反馈合成的图片方向不对,起初怀疑是本身图 ...

  5. Java(265-278)【Map】

    1.Map集合概述 是一个接口 键是唯一的 java.util.Map<k,v>集合 Map集合的特点:      1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个val ...

  6. 编程相关术语(Python)

    1. 程序的组成 程序 (program):(1)由一系列定义计算机如何执行计算的指令组成.(本质) (2)程序(算法)由对象.表达式和语句组成.(元素) 1.1程序的指令类型 输入 (input): ...

  7. WebGL之绘制三维地球

    通过Three.js也许可以很方便的展示出3D模型,但是你知道它是怎么一步一步从构建网格到贴图到最终渲染出3D模型的吗?现在我们直接使用底层的webgl加上一点点的数学知识就可以实现它. 本节实现的效 ...

  8. 10- sudo,exit命令

    sudo命令: 作用:用超级用户权限来执行这些命令. 格式:sudo 命令 [选项] [参数] Linux root根目录文件夹 exit命令: 退出用户登陆 Linux关机 开机 重启命令:

  9. 初中级php程序员面试时常见问题整理

    初中级php程序员面试问题收集 感悟 有时候草率给出一个答案,比思而无果更糟糕 php基础 php的数据类型 php数据类型的转换 php魔术方法 php 的trait的概念及特点 php 虚拟类和接 ...

  10. 一个简单的Android木马病毒的分析

    一.样本信息 文件名称: 一个安卓病毒木马.apk 文件大小:242867 byte 文件类型:application/jar 病毒名称:Android.Trojan.SMSSend.KS 样本MD5 ...