List的toArray结合Arrays的sort
?
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) }?