이 글에서는 목록 정렬을 구현하기 위한 Java Collections.sort()의 기본 및 사용자 지정 메서드를 주로 소개합니다. 필요한 친구는
1.java
기본 코드:
List<String> list = new ArrayList();list.add("刘媛媛"); list.add("王硕"); list.add("李明"); list.add("刘迪"); list.add("刘布"); //升序 Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//注意:是根据的汉字的拼音的字母排序的,而不是根据汉字一般的排序方法 for(int i=0;i<list.size();i++) { System.out.print(list.get(i)); } System.out.println(""); //降序 Collections.reverse(list);//不指定排序规则时,也是按照字母的来排序的 for(int i=0;i<list.size();i++) { System.out.print(list.get(i)); }
출력 결과:
Li Ming Liu Bu Liu Di Liu Yuanyuan Wang Shuo
Wang Shuo Liu Yuanyuan Liu Di Liu Bu Li Ming
2. 사용자 정의 정렬 규칙:
첫 번째는 모델 클래스 구현입니다. Comparableinterface, int CompareTo(Object o) 메소드
를 재정의하고 재정의하세요. ;
모델 클래스: rpublic class StudentDTO implements Comparable { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public ObjType getType() { return type; } public void setAge(int age) { this.age= age; } @Override public int compareTo(Object o) { StudentDTO sdto = (StudentDTO)o; int otherAge = sdto.getAge(); // note: enum-type's comparation depend on types' list order of enum method // so, if compared property is enum-type ,then its comparationfollow ObjEnum.objType order return this.age.compareTo(otherAge); } } 主方法: public static void main(String[] args) { List<StudentDTO> studentList = new ArrayList(); StudentDTO s1 = new StudentDTO (); s.setName("yuanyuan"); s.setAge(22); studentList.add(s1); StudentDTO s1 = new StudentDTO (); s.setName("lily"); s.setAge(23); studentList.add(s2); Collections.sort(studentList); //按照age升序 22,23, Collections.reverse(studentList); //按照age降序 23,22 }
참고:
1.
배열의 정렬 방법은 다음과 같습니다.
public class StudentDTO implements Comparable { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public ObjType getType() { return type; } public void setAge(int age) { this.age= age; } } 比较器类: class MyCompartor implements Comparator { @Override public int compare(Object o1, Object o2) { StudentDTO sdto1= (StudentDTO )o1; StudentDTO sdto2= (StudentDTO )o2; return sdto1.getAge.compareTo(stdo2.getAge()) } } 主方法: public static void main(String[] args) { List<StudentDTO> studentList = new ArrayList(); StudentDTO s1 = new StudentDTO (); s.setName("yuanyuan"); s.setAge(22); studentList.add(s1); StudentDTO s1 = new StudentDTO (); s.setName("lily"); s.setAge(23); studentList.add(s2); MyComparetor mc = new MyComparetor(); Collections.sort(studentList,mc); //按照age升序 22,23, Collections.reverse(studentList,mc); //按照age降序 23,22 }
2 한자 정렬의 경우: 더 나은 결과를 얻으려면 icu4j를 사용해 보세요. 특히 성은 일부입니다. 희귀 문자를 사용하는 경우 java.text.Collator를 com.ibm.icu.text.Collator로 바꾸고 java.util.Locale을 com.ibm.icu로 바꾸십시오. util.ULocale3 열거 유형의 경우 enum1 .compareTo(enum2)는 열거 유형 값이 정의된 순서에 따라 비교되며, 알파벳 순서에 따라 비교하는 대신 나중의 값이 더 큽니다. 가치.
위 내용은 Java는 목록 정렬을 위한 기본 및 사용자 정의 방법을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!