自分のページをカプセル化してソートする必要がある場合、リストはどのように特定の属性を並べ替えますか?小さな例を共有してください、誰もがあなたを励まします、私はそれがあなたに役立つことを願っています。アドバイスをください。
1。学生の豆は次のとおりです。
パブリッククラスの学生{private int age; private string name; private string weight; public string getweight(){return weight;} public void setweight(this.weight = weight;} public int getage(){return getage;} public void setage(int age){this.age = age;} public string getname( 名前;}}2。リスト内のオブジェクトのintタイプ属性でソート
/***リストのintタイプの属性* @param list*/@suppresswarnings( "unchecked")public static void sortintmethod(list list){collections.sort(){@overridepublic int compare(object o1、object o2){desurt stu1 =(desurt o1)o1; stu2 =(desute)o2; if(stu1.getage()> stu2.getage()){return 1;} else if(stu1.getage()== stu2.getage()){return 0;} els {return -1;}}}}); System.out.println( "//////////////////////////"); for(int i = 0; i <list.size(); i ++){desute st =(desute)list.get(i); system.out.println( "stertage ="+st.getage()+"、st.name ="+st.getname()); }}3。リスト内のオブジェクトの文字列タイプのプロパティでソート
1)方法1:
/***リストの文字列タイプの属性* @param list*/@suppresswarnings( "unchecked")public static void sortstringmethod(list list){collections.sort(){@overridepublic int compare(){@offeridepublic int compare(object o1、object o2){entulation stu1 =(desute stu1)op1; stu1.getname()。比較(stu2.getname());}}); System.out.println( "////////////////////////////////////////////////////////////////////////////////// for(int i = 0; i <list.size(); i ++){desute st =(desute)list.get(i); system.out.println( "stertage ="+st.getage()+"、st.name ="+st.getname()); }} 2)方法2:
java.text.rulebasedCollatorを使用して実装して、ロケールを区別する文字列比較を実行します。
/***リストの文字列タイプの属性* @param list*/@suppresswarnings( "unchecked")public static void sorty sortybyrulebasedcollator(list list){collections.sort(){@overridepublic int compart(object o1、object o2) ((java.text.rulebasedcollator)java.text.collator.getInstance(java.util.locale.china))。 ((学生)o2).getname();}}); system.out.println( "/////////////////////////"); for(int i = 0; i <list.size(); i ++){desute st =(desute)list.get(i); system.out.println( "stertage ="+st.getage()+"、st.name ="+st.getname()); }}4.ソートメソッドをテストします
@suppresswarnings( "Unchecked")public static void main(string [] args){arraylist list = new arrayList(); sudine t1 = new Student(); t1.setage(35); t1.setname( "wange"); list.add(t1); Student(); t2.setage(4); t2.setname( "lisi"); list.add(t2); desute t3 = new Student(); t3.setage(56); t3.setName( "Zhonghua"); list.add(t3); desutent t4 = new Student(); t4.Setage(39); t4.setName( "waangei"); list.add(t4); system.out.println( "/////////排序之前///////////////"); system.out.println( "stertage ="+st.getage()+"、st.name ="+st.getname()); } //リストのsortintmethod(list)のintタイプのプロパティに従って並べ替えます。 //リストの文字列タイプのプロパティに従って並べ替えましたsortstringmethod(list);} 5。結果