package com.xiva.bean; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class CollectionDemo { public static void main(String[] args){ List<Integer> ages = new ArrayList<Integer>(); ages.add(2); ages.add(1); ages.add(55); ages.add(5); ages.add(18); ages.add(11); Object[] agesArray = ages.toArray(); for(int i = 0; i < agesArray.length; i++){ System.out.println(agesArray[i]); } Arrays.sort(agesArray); System.out.println("after sort:"); for(int i = 0; i < agesArray.length; i++){ System.out.println(agesArray[i]); } } }
曾经面试被问过一次,没有答上来。今天回想,再查查API;看到了。
List接口有一个toArray的方法;本程序中转换为Array的原因主要是为了排序。至于其他用途未知。
Sorting an Array
1. 数字排序 int[] intArray = new int[] { 4, 1, 3, -23 }; k, `" _# x7 M
Arrays.sort(intArray);$ {3 K) O% E1 W5 T7 X% T' i
输出: [-23, 1, 3, 4]
2. 字符串排序,先大写后小写 String[] strArray = new String[] { "z", "a", "C" };
Arrays.sort(strArray);
输出: [C, a, z]6 Q( W2 ]5 p I0 k& c* Q6 r }
3. 严格按字母表顺序排序,也就是忽略大小写排序 Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);8 R7 I5 D0 [" [2 U2 Q2 k
输出: [a, C, z]
4. 反向排序, Reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
输出:[z, a, C]
5. 忽略大小写反向排序 Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);& ]# ]/ z) n* k. D) i0 F
Collections.reverse(Arrays.asList(strArray));# M3 S. i7 M }0 \% a9 N% h% L; r
输出: [z, C, a] E8 T4 O+ Z X: h) }