中文JAVA技術平等自由協作創造

          Java專題文章博客和開源

          常用鏈接

          統計

          最新評論

          Comparable接口中compareTo用法

            compareTo就是比較兩個值,如果前者大于后者,返回1,等于返回0,小于返回-1,我下面給出了例子,由于比較的變量我用的是int,int型可以直接比較,所有沒有用到compareTo比較,如果聲明的是Date、String、Integer或者其他的,可以直接使用compareTo比較,托福考前答案

            public int compareTo(TestModel1 o) {

            return this.str1.compareTo(o.str1);

            }compateTo方法內必須做非空判斷(規范問題),當然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;

            }

            }
           

          posted on 2013-09-07 11:25 好不容易 閱讀(237) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          PK10開獎 PK10開獎
          主站蜘蛛池模板: 丘北县| 图木舒克市| 榆社县| 庆元县| 达拉特旗| 青岛市| 息烽县| 廉江市| 衢州市| 安远县| 绥德县| 桓仁| 福清市| 铜川市| 灵武市| 和顺县| 罗田县| 弋阳县| 贵溪市| 鸡泽县| 山西省| 西宁市| 方城县| 龙岩市| 苗栗市| 汉阴县| 南乐县| 怀柔区| 石城县| 屯昌县| 华安县| 鲁甸县| 莆田市| 恩平市| 金堂县| 读书| 舟山市| 六安市| 涪陵区| 英山县| 濮阳市|