때로는 자신의 페이지를 캡슐화하고 정렬해야 할 때 목록은 특정 속성을 어떻게 정렬합니까? 작은 예를 공유하십시오. 모두가 당신을 격려합니다. 나는 그것이 당신에게 유용하기를 바랍니다. 조언을 해주세요.
1. 학생의 콩은 다음과 같습니다.
공개 클래스 학생 {private int Age; 개인 문자열 이름; 개인 문자열 무게; 공개 문자열 getweight () {return weight;} public void setweight (String weight) {this.weight = weight;} public int getage () {return age;} public void setage (int age) {this.age = age} public string getName ()} public void setn (string name)}2. 목록에서 개체의 int 유형 속성별로 정렬
/*** 목록에서 int 유형의 속성별로 정렬* @param list*/@suppresswarnings ( "확인되지 않은") public static void sortintmethod (list) {collections.sort (list, new comparator () {Object O1, Object O2) {Student Stu1 = (학생) o1; stu2 = (학생) o2; if (stu1.getage ()> stu2.getage ()) {return 1;} else if (stu1.getage () == stu2.getage ()) {return 0;} else {return -1;}}}); System.out.println ( "//////////////////////////////"); for (int i = 0; i <list.size (); i ++) {Student st = (학생) list.get (i); system.out.println ( "st.age ="+st.getage ()+", st.name ="+st.getname ()); }}3. 목록에있는 객체의 문자열 유형의 속성에 따라 정렬
1) 방법 1 :
/*** 문자열 유형의 속성별로 목록*/@param list*/@suppresswarnings ( "선택 취소") 공개 정적 void sortstringmethod (list) {collections.sort (list, new comparator () {@reveridepublic int compare (object o1, object o2) {Student stu1 = (학생) o1; stu1.getname (). compareto (stu2.getname ());}}); System.out.println ( "//////////////////////////////////////"); for (int i = 0; i <list.size (); i ++) {Student st = (학생) list.get (i); system.out.println ( "st.age ="+st.getage ()+", st.name ="+st.getname ()); }} 2) 방법 2 :
로케일을 구별하는 문자열 비교를 수행하기 위해 java.text.rulebasedCollator를 사용하여 구현했습니다.
/*** 문자열 유형의 속성별로 정렬 목록*/@param list*/@suppresswarnings ( "확인되지 않은") 공개 정적 void sortbyrulebasedcollator (목록) {collections.sort (list, new comparator () {@reveridepublic int compare (object o1, object o2) {return (((java.text.rulebasedcollator) java.text.collator.getinstance (java.util.locale.china)). 비교 ((학생) o1) .getname (), ((학생) o2) .getName ());}}); System.out.println ( "/////////////////////////////"); for (int i = 0; i <list.size (); i ++) {Student st = (학생) list.get (i); system.out.println ( "st.age ="+st.getage ()+", st.name ="+st.getname ()); }}4. 분류 방법을 테스트하십시오
@SuppressWarnings ( "확인되지 않은") public static void main (String [] args) {arraylist list = new arraylist (); Student t1 = new Student (); t1.setage (35); Student (); t2.setage (4); t2.setname ( "lisi"); list.add (t2); student t3 = new Student (); t3.setage (56); t3.setname ( "zhonghua"); ist.add (t3); 학생 t4 = new Student (); t4.setage (39); t4.setname ( "waanglei"); list.add (t4); System.out.println ( "//////////////////////////////////////////////////////1) system.out.println ( "st.age ="+st.getage ()+", st.name ="+st.getname ()); } // int type의 속성에 따라 목록 SortIntMethod (list); // 문자열 유형의 속성에 따라 정렬 목록 SortStringMethod (list);} 5. 결과