码迷,mamicode.com
首页 > 编程语言 > 详细

java compareTo() 用法注意点

时间:2018-12-09 13:58:46      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:else   声明   mode   bsp   pack   注意   str1   array   实现   

   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);//自动调用compareTo
      System.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

java compareTo() 用法注意点

标签:else   声明   mode   bsp   pack   注意   str1   array   实现   

原文地址:https://www.cnblogs.com/xianfengzhike/p/10090499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!