Java的Comparable接口
Comparable接口提供比较对象大小功能,实现了此接口的类的对象比较大小将通过接口提供的compareTo方法。
此方法的返回int类型,分三种情况。
- 返回正数,当前对象大于目标对象
- 返回负数,当前对象小于目标对象
- 返回0,当前对象等于目标对象
TreeSet提供了将对象排序功能(默认升序排序),如果存储容器的是自定义类,那此类将要实现Comparable功能以供TreeSet进行对象大小比较时使用,否则将报错。
public class TestCompareTo implements Comparable<TestCompareTo> {
private Integer a = null;
public TestCompareTo(Integer a) {
this.a = a;
}
public Integer getA() {
return a;
}
@Override
public int compareTo(TestCompareTo o) {
return this.a > o.a ? -1 : (this.a == o.a ? 0 : 1);
}
}
public class Test{
public static void main(String[] args) {
//test TreeSet
Set<TestCompareTo> set = new TreeSet<>();
set.add(new TestCompareTo(-10));
set.add(new TestCompareTo(-20));
set.add(new TestCompareTo(-30));
set.add(new TestCompareTo(0));
set.add(new TestCompareTo(10));
set.add(new TestCompareTo(-100));
Iterator iterator = set.iterator();
while(iterator.hasNext()){
TestCompareTo tmp = (TestCompareTo) iterator.next();
System.out.println(tmp.getA());
}
}
}
Java的Comparable接口的更多相关文章
- java比较器Comparable接口和Comaprator接口
Comparable故名思意是比较,意思就是做比较的,然后进行排序. 1.什么是comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compar ...
- java.lang.Comparable接口
转自:http://blog.csdn.net/zccst/article/details/5092920 java.lang.Comparable 接口 作者: zccst java.lang.Co ...
- java实现Comparable接口和Comparator接口,并重写compareTo方法和compare方法
原文地址https://segmentfault.com/a/1190000005738975 实体类:java.lang.Comparable(接口) + comareTo(重写方法),业务排序类 ...
- Java之comparable接口
comparable 接口: 1. 问题:java.util.Collections 类中的方法 Collections.sort(List list) 是根据什么确定容器中对象的“大小”顺序的? 2 ...
- Java的Comparable接口的一个陷阱
转载自:http://my.oschina.net/jack230230/blog/56339 Java的Comparable接口提供一个对实现了这个接口的对象列表进行排序的办法.原始的排序对于简单的 ...
- Java之Comparable接口和Comparator接口
Comparable & Comparator 都是用来实现集合中元素的比较.排序的: Comparable 是在集合内部定义的方法实现的排序: Comparator 是在集合外部实现的排序: ...
- Java.lang.Comparable接口和Java.util.Comparator接口的区别
Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 1.Com ...
- java lang(Comparable接口) 和java util(Comparator接口)分析比较
//Comparable 接口强行对实现它的每个类的对象进行整体排序. -- 自然排序.类的compareTo称为自然比较方法. public interface Comparable<T> ...
- Java中Comparable接口和Comparator接口的简单用法
对象比较器 1.Comparable接口 此接口强行对实现它的每个类的对象进行整体排序,这种排序成为类的自然排序,类的compareTo方法称为类的自然比较方法. 代码示例 import java.u ...
- 12.Java中Comparable接口,Readable接口和Iterable接口
1.Comparable接口 说明:可比较(可排序的) 例子:按照MyClass的y属性进行生序排序 class MyClass implements Comparable<MyClass> ...
随机推荐
- pycharm 怎么能像在命令行中输入参数进行调试
pycharm中配置main参数 Run->Edit Configurations->Script Parames 把需要在xxx.py A B C 后面的参数输入到如下位置. 否则会报错 ...
- Python把多行文本合并
在引用论文时,往往格式出错,出现非常多行,这样操作非常不方便.这种方法讲多行合并之后,再处理: # 文件空格和回车键处理工具infile = r'C:\Users\SAM\Desktop\新建文本文档 ...
- 原来你是这样的 jsonp(原理与具体实现细节)
前言 原文地址 仓库地址 jsonp(JSON with padding)你一定不会陌生,前端向后端拿数据的方式之一,也是处理跨域请求的得利助手. 我们早已习惯,早已熟练了jQ或者zepto的ajax ...
- 一秒钟解决mysql使用游标出现取值乱码问题
drop procedure if exists pro_test; delimiter // create procedure pro_test() begin declare str varcha ...
- haproxy和keepalived的理解(转载)
关于此两者,随便google一下都会有大量的文章,因此这里也不用介绍如何来进行安装和配置了.主要从一个整体方案的角度来描述什么要这样做,以及这样做所解决的问题. 所有的系统,都是先经历一个单台机器搞所 ...
- Codeforces 839E Mother of Dragons
题 OvO http://codeforces.com/contest/839/problem/E (Codeforces Round #428 (Div. 2) - E) 解 首先,k肯定是要平均分 ...
- 炫酷CSS3垂直时间轴特效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Axure RP 8 破解汉化(实测可用)
Axure的安装教程初学乍练,从安装应用程序开始1.下载 下载地址:https://www.axure.com.cn/3510/ 2.破解:注册码(源于博主“前端大白兔”,原博客网址:http://b ...
- 2019 Red PCB KESS V5.017:支持140协议
2019红色PCB KESS V5.017 是一种流行的汽车ECU的编程器.这里分享一下这个设备的信息. KESS V2介绍: 型号名称:KESS V2 Master软件版本:V2.47(最新)固件版 ...
- TTTTTTTTTTTTT CF#365 div2 B 统计点
B. Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input standard i ...