首页
学习
活动
专区
工具
TVP
发布

Comparable和Comparator

Comparable接口 在java.lang包下,实现了Comparable函数式接口的对象可以自然排序,而数组和集合实现了该接口,所以我们会用Arrays.sort()或Collections.sort...()来排序 Comparable比较大于就返回1,小于返回-1,等于返回0 如果自定义的对象也要排序,就需要实现该接口并且手动重写里面的compareTo()方法 返回值 函数名 解释 int compareTo...(T o) 将此对象与指定的对象进行比较以进行排序 需要排序的自定义对象 public class User implements Comparable{ private int...比较二者 Comparable实现的是自然排序,是对象内部自己实现的 Comparator实现定制排序,是对象之外实现的,借助了外力来推动比较 二者同时存在则使用Comparator排序

46120
您找到你想要的搜索结果了吗?
是的
没有找到

Comparable 与 Comparator 浅析

Comparable和Comparator接口都是用来比较大小的,首先来看一下Comparable的定义: package java.lang; import java.util.*; public interface...若一个类实现了Comparable 接口,实现 Comparable 接口的类的对象的 List 列表 ( 或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。...举例(类Person1实现了Comparable接口) package collections; public class Person1 implements Comparable<Person1...实现Comparable接口必须修改自身的类,即在自身类中实现接口中相应的方法。...类实现了Comparable接口,就表明它的实例具有内在的排序关系,为实现Comparable接口的对象数组进行排序就这么简单: Arrays.sort(a); 对存储在集合中的Comparable对象进行搜索

46840

Comparable 和 Comparator的理解

Comparable 的解释 Comparable是一个排序接口 此接口给实现类提供了一个排序的方法,此接口有且只有一个方法 public int compareTo(T o); compareTo...不同于Comparable ,比较器可以任选地允许比较null参数,同时保持要求等价关系。...Comparable 和 Comparator 的对比 1、Comparable 更像是自然排序 2、Comparator 更像是定制排序 同时存在时采用 Comparator(定制排序)的规则进行比较...对于一些普通的数据类型(比如 String, Integer, Double…),它们默认实现了Comparable 接口,实现了 compareTo 方法,我们可以直接使用。...参考: Java 中 Comparable 和 Comparator 比较 https://zhuanlan.zhihu.com/p/24081048 Java 解惑:Comparable 和 Comparator

54430

Comparable和Comparator的区别

Comparable 定义(只包含一个方法): package java.lang; import java.util.*; public interface Comparable { public...位于包 java.lang下 Comparable & Comparator 都是用来实现集合中元素的比较、排序,区别:Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序...自定义的类要在加入list容器中后能够排序,可以实现Comparable接口,在用Collections类的sort方法排序时,如果不指定Comparator,那么就以自然顺序排序,这里的自然顺序就是实现...Comparable接口设定的排序方式。...Comparable是排序接口;若一个类实现了Comparable接口,就意味着“该类支持排序”;而Comparator是比较器;我们若需要控制某个类的次序,可以建立一个“该类的比较器”来进行排序。

27430

Comparable 与 Comparator 浅析

Comparable和Comparator接口都是用来比较大小的,首先来看一下Comparable的定义: package java.lang; import java.util.*; public interface...若一个类实现了Comparable 接口,实现 Comparable 接口的类的对象的 List 列表 ( 或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。...举例(类Person1实现了Comparable接口) package collections; public class Person1 implements Comparable<Person1...实现Comparable接口必须修改自身的类,即在自身类中实现接口中相应的方法。...类实现了Comparable接口,就表明它的实例具有内在的排序关系,为实现Comparable接口的对象数组进行排序就这么简单: Arrays.sort(a); 对存储在集合中的Comparable对象进行搜索

55160

Comparator 和 Comparable的区别

1.位置 Comparable 位于 java.lang,我们都知道 java.lang包可以说是 java体系中基础包,有 ClassLoader、Class、Object、基本类型等 Comparator...位于 java.util,也就是 java 自带的类库,包括一些常用的集合类、strem、function 所以从这个角度来说,Comparator 也属于类库的一种就是为了方便开发,而 Comparable...2.描述 Comparable: This interface imposes a total ordering on the objects of each class that implements...可以通过 Collections.sort()、Arrays.sort() 方法进行排序,若某对象实现了 Comparable 则该对象的 SortedMap 、SortSet 会自动对对象进行排序,并不需要...users) { System.out.println(user.getName()); } System.out.println("treeSet====="); //实现了 Comparable

33020

Java面试之comparator与comparable

Comparator 与 Comparable 接口是干什么的?...列出它们的区别 Comparable是一个内比较器,实现Comparable的接口的类有一个特点,就是这些类可以和自己进行比较,至于具体和另一个实现了Comparable接口的类如何比较,则依赖ComparaTo...如果开发者添加进入一个Collection对象想要Collections的sort方法帮助进行排序的话,那么这个对象必须实现Comparable接口,CompareTo方法的返回值是int compareTo...如果该对象小于等于或者大于指定对象,则分别返回负整数、零、正整数 comparator可以被认为是一个外比较器,有两种情况可以使用实现comparator接口的方法: 一个对象不支持自身进行比较(没有实现comparable...接口),但是又想两个对象进行比较 一个对象实现了comparable接口,但是开发者认为compareTo方法中的比较方式并不是自己的理想实现方法 int compare(T o1,T o2),根据第一个参数小于

80010

5 分钟搞定 Java Comparable 接口

Comparable接口时用来干什么的呢? 我们应该如何对事物进行比较和排序?这问题听上去有点莫名其妙,但我希望你认真考虑一下。比方说,我们有一组苹果: ? 例1 我们要怎样对它们进行排序呢?...Comparable接口可以帮助我们实现这一目标。Comparable本身不能对对象进行排序,但接口定义的方法 int compareTo(T)可以。...由于我们使用的是compareTo方法,并且正在排序苹果,所以我实现了Comparable接口。在这第一个版本中,我们通过重量比较对象。...Comparable,hashCode以及Equals 你可能会注意到compareTo()看起来有点像hashCode()和equals()方法。但是,它们有一个重要的区别。...使用TreeSet和Tree Map,就更简单了——想要它们会自动排序必须实现Comparable接口的元素。

62410
领券