java compareTo() 用法注意点
compareTo就是比较两个值,如果前者大于后者,返回1,等于返回0,小于返回-1,我下面给出了例子,由于比较的变量我用的是int,int型可以直接比较,所以没有用到compareTo比较,如果声明的是Date、String、Integer、或者其他的,可以直接使用compareTo比较,
public int compareTo(TestModel1 o) {return this.str1.compareTo(o.str1);}
compareTo方法内必须做非空判断(规范问题),当然int类型就不用了。
注意事项:
1、模型必须实现Comparable<T>接口
2、Collection.sort(list)会自动调用compareTo,如果没有这句,list是不会排序的,也不会调用compareTo方法
3、如果是数组则用Arrays.sort(a)方法
代码如下:
package test; import java.util.Collections; import java.util.List; public class Test { public static void main(String[] args) {
list.add(new TestModel1(1,"",""));list.add(new TestModel1(3,"",""));list.add(new TestModel1(2,"",""));list.add(new TestModel1(6,"",""));list.add(new TestModel1(9,"",""));list.add(new TestModel1(7,"",""));System.out.print("排序前:");for (TestModel1 t : list) {System.out.print(t.getInteger()+" ");}Collections.sort(list);//自动调用compareToSystem.out.print("\n排序后:");for (TestModel1 t : list) {System.out.print(t.getInteger()+" ");}} }
public class TestModel1 implements Comparable<TestModel1>{private int integer;private String str1;private String str2;public int getInteger() {return integer;}public void setInteger(int integer) {this.integer = integer;}public String getStr1() {return str1;}public void setStr1(String str1) {this.str1 = str1;}public String getStr2() {return str2;}public void setStr2(String str2) {this.str2 = str2;}public TestModel1(Integer integer, String str1, String str2) {super();this.integer = integer;this.str1 = str1;this.str2 = str2;}public int compareTo(TestModel1 o) {if(this.integer<o.integer)return -1;else if(this.integer==o.integer)return 0;else return 1;} }
效果如下
转载:https://blog.csdn.net/fengxing11/article/details/53696504
转载于:https://www.cnblogs.com/xianfengzhike/p/10090499.html
java compareTo() 用法注意点相关推荐
- java resume过时方法_学点开发|关于Java多线程用法解析
在进行学习之前,我们先来了解下,什么是Java多线程: 多线程是实现并发机制的一种有效手段.进程和线程一样,都是实现并发的一个基本单位.为了让大家更清晰读懂关于Java多线程用法,由以下几点入手学,帮 ...
- java正则表达式用法示例_Java正则表达式教程及示例
java正则表达式用法示例 当我开始使用Java时,正则表达式对我来说是一场噩梦. 本教程旨在帮助您掌握Java正则表达式,并让我定期返回以刷新我的正则表达式学习. 什么是正则表达式? 正则表达式定义 ...
- java list用法_Java List 用法详解及实例分析
Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...
- java反射用法示例_Java包| 类型,用法,示例
java反射用法示例 配套 (Packages) Packages in Java is simply a mechanism to encapsulate (i.e. to put in a sho ...
- java反射用法示例_Java反射示例教程
java反射用法示例 Java Reflection provides ability to inspect and modify the runtime behavior of applicatio ...
- Java SimpleDateFormat用法
1. SimpleDateFormat类 SimpleDateFormat是一个日期格式化类,用来格式化日期. // 构造方法 public SimpleDateFormat(String patte ...
- Java split()用法,使用特殊字符要注意了
Java split()用法,使用特殊字符要使用转义字符. 特殊字符有 * ^ : | . \ 1.单个符号作为分隔符 特殊符号* .split("\\*"); 特殊符号^ .s ...
- Java Calendar用法
1. Calendar初始化 Calendar calendar = Calendar.getInstance(); 默认返回GregorianCalendar实例,在GregorianCalenda ...
- Java Formatter用法
1. Formatter类 1.1 使用方法 Formatter formatter = new Formatter([destination]); formatter.format(String f ...
最新文章
- webpack配置alias别名设置
- python命令大全-深度学习中python常用命令
- [Swift]LeetCode483. 最小好进制 | Smallest Good Base
- Circulation:吃鸡蛋量多,死亡风险增加?
- js 正则判断用户是否输入表情
- [算法][包围盒]AABB简单类
- Linux下TCP循环接收数据的方式
- python字典(dictionary)中get和items、iteritems方法
- Linux开机加载新内核,linux-kernel – 为什么加载内核地址,ramdisk在启动时很重要?...
- Spring JtaTransactionManager事务管理
- (ensp)华为USG6000v防火墙简单配置
- linux怎么查看ip地址
- 关于nginx配置负载均衡,nginx.conf配置文件正确,一直跳出nginx欢迎界面
- N MOSFET VGS(th)和管子导通的关系
- 亚马逊多账号防关联技巧
- gucci红包封面怎么抽 gucci红包封面怎么领取
- android 2.3.6Gallary源码导入到Eclipse中编译
- 2021年计算机类 人工智能 软件SCI一区期刊
- 我爬了链家青岛市北3000套二手房得出一个结论
- 静态网页爬取-Requests