1.java提供的預設list排序方法
主程式碼:
List
list.add("王碩");
list.add("李明");
list.add("劉迪");
list.add("劉迪");
//升序
Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//注意:是根據的漢字的拼音的字母排序的,而不是根據漢字一般的排序方法
for(int i=0;i
System.out.print(list.get( i));
}
##///降序
Collections.reverse(list);///不指定規則時,字母的來排序的
for(int i=0;i
System.out.print(list.get(i));##
王碩劉媛媛劉迪劉布李明
2.自訂的排序規則:
第一種是model類別實作Comparable接口,重寫重寫int compareTo(Object o)方法
model類別:public class StudentDTO implements Comparable{
private String name;
private int age;
return name;
}
public void setName(String name)
this.name = name;
}
#Fpublic ObjType getType( ## {
return type;
public void setAge(int age)
{
#this.age= age;
public int compareTo(Object o)
{
StudentDTO sdto = (StudentDTO)o;
// so, if compared property is enum-type ,then its # compareTo(otherAge);
}
}
主方法:
#o List
StudentDTO s1 = new StudentDTO ();
s.setName("yuanyuan");
##
# studentList.add(s1);
StudentDTO s1 = new StudentDTO ();
# ## s.setAge( 23);
studentList.add(s2);
第二種是比較器類別實作Comparator接口,重寫int compare(Object o1, Object o2)方法;
model類別: public class StudentDTO implements Comparable{## String getName( )
{return name;
} public void setName(String name)
{
this.name = name;
}
public void setAge(int Age)
{
this.age=age;
}
不同器類:
class MyCompartor 實作Comparator
{@Override
public int Compare(Object o1, Object o2) {
#Stu# sd TO
## StudentDTO sdto2= (StudentDTO )o2;
return sdto1。 主方法:
public static void main(String[] args)
{ List
StudentDTO s1 = new StudentDTO ();
s.setName("yuanyuan");
# s 2#
StudentList.add(s2);
##}
附註:
##1.記憶體的排序方法如下: String[] names = {"王林", "楊寶", "李鎮", "劉迪", "劉波"};Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.
SIMPLIFIED_CHINESE));//升序;
System.out.println(Arrays.toString(names)); 2.對於漢字的排序:可以嘗試使用ICU4J會得到更好的結果,特別是姓為某些生國外字的時候,用com.ibm.icu.text 。是按照枚舉類型值中的定義時的字母順序比較的,越後面的越大,而不是按照值的字母順序比較的。#
#以上是java Collections.sort()實作List排序的預設方法和自訂方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!