java compareTo() 用法注意点
转自:http://www.2cto.com/kf/201305/210466.html
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>接口
2Collections.sort(list);会自动调用compareTo,如果没有这句,list是不会排序的,也不会调用compareTo方法
3如果是数组则用的是Arrays.sort(a)方法
代码如下:
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<TestModel1> list = new ArrayList<TestModel1>();
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);//自动调用compareTo
System.out.print("\n排序后:");
for (TestModel1 t : list) {
System.out.print(t.getInteger()+" ");
}
}
}
package test;
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;
}
}
效果如下:
java compareTo() 用法注意点的更多相关文章
- Java 习惯用法总结
转自:http://www.importnew.com/15605.html 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » Java 习惯用法总结 2015/04/ ...
- 【转】java list用法示例详解
转自:http://www.jb51.net/article/45660.htm java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对java list用法做了详解. Lis ...
- Java List 用法代码分析 非常详细
Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3 ...
- Java split用法
Java split用法 java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separat ...
- Java Enum用法详解
Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...
- 你真的了解java的lambda吗?- java lambda用法与源码分析
你真的了解java的lambda吗?- java lambda用法与源码分析 转载请注明来源:cmlanche.com 用法 示例:最普遍的一个例子,执行一个线程 new Thread(() -> ...
- Java compareTo() 方法(转载)
Java compareTo() 方法 compareTo() 方法用于两种方式的比较: 字符串与对象进行比较. 按字典顺序比较两个字符串. 语法: int compareTo(Object o)// ...
- Java compareTo的用法
compareTo() 方法用于将 Number 对象与方法的参数进行比较.可用于比较 Byte, Long, Integer等. 该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比 ...
- java TreeMap用法
转自:http://huchenqiang90.blog.163.com/blog/static/11250080020101025956498/ 最近工作遇到需要按一个model中不同的列进行排序的 ...
随机推荐
- 使用YII框架的migrate迁移数据库
框架版本:2.0.13 官网手册说明:http://www.yiichina.com/doc/guide/2.0/db-migrations 创建迁移 命令的格式: php yii migrate/c ...
- HDU 2081 手机短号
Problem Description 大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号.假设所有的短号都是是 6+手机号的后5位,比 ...
- Character Encoding Issues for tomcat
https://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q8 https://stackoverflow.com/questions/10936846 ...
- phpStorm字体大小无法调整, 怎么办?
最近上手了一款轻量级IDE phpStorm,可是就在调整编辑器字体大小时却遇到问题了, 发现字体大小无法调整,另外还有字体大小往左还有个“√”,始终无法去掉,这个勾限制了字体系列,就可怜巴巴的那几个 ...
- python之Counter类:计算序列中出现次数最多的元素
Counter类:计算序列中出现次数最多的元素 from collections import Counter c = Counter('abcdefaddffccef') print('完整的Cou ...
- ansible系列1-批量分发钥匙
auth.yaml- hosts: all gather_facts: false tasks: - name: deliver authorized_keys authorized_key: use ...
- Spring JDBC 数据访问
Spring JDBC是Spring所提供的持久层技术,它的主要目标是降低使用JDBC API的门槛,以一种更直接,更简介,更简单的方式使用JDBC API, 在Spring JDBC里,仅需做那些与 ...
- 06 自学Aruba之win7系统802.1x认证网卡设置指导
点击返回:自学Aruba之路 06 自学Aruba之win7系统802.1x认证网卡设置指导 步骤1.在桌面任务栏找到“打开网络和共享中心”,点击进入: 步骤2.点击“管理无线网络”,进入无线网络配置 ...
- 自学Linux Shell6.2-用户自定义环境变量
点击返回 自学Linux命令行与Shell脚本之路 6.2-用户自定义环境变量 1.设置局部用户定义变量 一旦启动bash shell(或者执行一个shell脚本),你就能创建这个shell进程可见的 ...
- EXTRACT FILES AND IMAGES FROM A SHAREPOINT CONTENT DATABASE
If you ever had the problem where you need to extract files from a SharePoint Content Database or no ...