Collections是個服務於Collection的工具類(靜態的),它里面定義了一些集合可以用到的方法。
本文演示了Collections類里sort()的兩個方法。第一種只需傳入被排序的集合,便會為它自然排序。但有時我們需要自定義排序的方式,這是我們就得定義一個比較器,里面定義我們要排序的方式,調用sort()時,把被排序的集合和比較器同時傳入,就可以按照自定義的方式排序了。
package Test602;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
/**
* 對字符串進行自然排序和長度排序
*/
public class CollectionsDemo {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("fa");
al.add("gaa");
al.add("xa");
al.add("vacvh");
al.add("wetq");
al.add("hja");
al.add("jewik");
getAl(al);
System.out.println(ziRanSort(al));
System.out.println(strLenSort(al));
}
//按原序列取出ArrayList的元素
public static void getAl(ArrayList<String> al)
{
Iterator<String> it = al.iterator();
//String result = null;
while(it.hasNext())
{
String result = it.next();
System.out.println(result);
}
}
//進行自然排序
public static ArrayList<String> ziRanSort(ArrayList<String> al)
{
Collections.sort(al);
return al;
}
//按照字符串長度進行排序
public static ArrayList<String> strLenSort(ArrayList<String> al)
{
StrLenComparator comp = new StrLenComparator();
Collections.sort(al, comp);
return al;
}
}
新建一個類,里面自定義一個比較器(按照字符串的長度進行比較)
package Test602;
import java.util.Comparator;
public class StrLenComparator implements Comparator<String>{
public int compare(String str1, String str2) {
// TODO Auto-generated method stub
if(str1.length()>str2.length())
{
return 1;
}
if(str1.length()<str2.length())
{
return -1;
}
return 0;
}
}
