转自: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接口

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 list = new ArrayList();

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{

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

else if(this.integer==o.integer)return 0;

else return 1;

}

}

效果如下:

java list compareto_java compareTo() 用法注意点相关推荐

  1. compareto java date_Java Date compareTo()用法及代码示例

    Java Date类的compareTo()方法比较两个日期并将它们排序. 用法: public int compareTo(Date anotherDate) 参数:该函数接受单个参数another ...

  2. Java时间对比compareTo用法

    Calendar a= Calendar.getInstance(); a.set(2021, 05,28, 19,50, 2); //参数为年 月 日 时 分 秒 a.set(Calendar.MI ...

  3. java file pathname_int compareTo(File pathname)

    描述 所述java.io.File.compareTo(File pathname)方法按字母顺序比较两个抽象路径名.此方法定义的顺序取决于操作系统. 声明 以下是java.io.File.compa ...

  4. Java 8 Stream 流用法及语法

    Java 8 Stream 流用法 1.简介 Stream流 最全的用法 Stream 能用来干什么?用来处理集合,通过 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据 ...

  5. java中的compareto方法

    一.java中的compareto方法 1.返回参与比较的前后两个字符串的asc码的差值,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值 String a1 = "a" ...

  6. java中的基本用法

    java中的基本用法 关键字:专门用途的字符串 所有java关键字都是小写英文 标识符 java常量 java变量 ■ 作用域:起作用的区域■ 使用前必须先声明,在赋值.使用变量名访问这块区域 jav ...

  7. Java中getResourceAsStream的用法

    Java中getResourceAsStream的用法 首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String p ...

  8. Java中getResourceAsStream的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三 ...

  9. java中substring的用法

    2019独角兽企业重金招聘Python工程师标准>>> java中substring的用法 str=str.substring(int beginIndex);截取掉str从首字母起 ...

最新文章

  1. 在Substance Designer中创建砖墙视频教程
  2. Windows 根据进程名杀死进程 kill
  3. [转]Silverlight在调用wcf时传输数据过大返回Not Found的解决办法
  4. 【Linux】13_ 文件查找
  5. 数据集干货:一文读懂Mapsidejoin
  6. sql在线模拟器_力荐一款在线SQL模拟器
  7. Echarts地图初体验
  8. boost::mpl::distance相关的测试程序
  9. telnet 查看端口是否可访问
  10. Dynatrace成功扩展kubernetes全栈可观察性
  11. mysql序列 mybatis_MySQL实现序列(Sequence)效果以及在Mybatis中如何使用这种策略
  12. 记录——《C Primer Plus (第五版)》第九章编程练习第二题
  13. 英伟达证实遭遇攻击,核心源代码惨遭泄露,75GB机密数据被公开
  14. eclipse环境下基于已构建struts2项目整合spring+hibernate
  15. 质量评估:如何全面评价一份数据的质量高低?
  16. 码元、符号、波特率、比特率等概念的了解
  17. 考研数据结构之数组(5.1)——练习题之移动数组所有非零元素到数组前端(C表示)
  18. 【秒懂+解决方案】git error: The following untracked working tree files would be overwritten by checkout: ...
  19. centos7的LAMP多机LAP+MYSQL
  20. 启动nodejs时报错 internal/modules/cjs/loader.js:584的解决办法

热门文章

  1. 在angular中使用ng-zorro-antd组件
  2. 随机森林_袋外错误率(OOB error)
  3. 约德尔测试_英雄联盟
  4. Window下进行PHP的redis扩展安装
  5. String中截取部分内容
  6. ViewPager2滑动事件冲突
  7. CADCG GDC 2018大会论文录用名单
  8. 生命是一个长期而持续的积累过程
  9. 面试java你最擅长什么_面试官最喜欢问的10道Java面试题
  10. 华南理工大学计算机学院余志文电话,余志文