java compareTo() 用法注意点
生活随笔
收集整理的這篇文章主要介紹了
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() 用法注意点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于kotlin GPUImage的使用
- 下一篇: 【bzoj2006】【NOI2015】超