java.util.Arrays 提供所有基本型別、String 和 Object 陣列的 sort() 和 binarySearch()。基本用法:
byte[] b = new byte[15]; Arrays.sort(b); int loc = Arrays.binarySearch(b, b[10]);
關鍵警告:未排序陣列調用 binarySearch() 行為不可預測,可能導致無限迴圈。
預設按字符編碼排序:大寫字母 (A-Z) 排在小寫 (a-z) 前面。電話簿式排序往往不符合預期。
為自定義排序,Java 提供兩種機制:
compare(o1, o2)。排序時傳入實例,搜尋時必須用同一比較器。compareTo(Object)。類別自身定義順序,無需外部比較器。Arrays.sort(stringArray, new Comparator() {
public int compare(Object o1, Object o2) {
return ((String)o1).toLowerCase().compareTo(((String)o2).toLowerCase());
}
});
Collections 提供對應 List 的靜態方法:sort(List)、binarySearch(List, Object) 等,用法與 Arrays 一致。TreeMap 也需 Comparable/Comparator 維持鍵有序。