Java数组排序和查找

Java 1.2 添加了自己的一套实用工具,可用来对数组或列表进行排列和搜索。这些工具都属于两个新类的“静态”方法。这两个类分别是用于排序和搜索数组的Arrays,以及用于排序和搜索列表的Collections。

/**
 * Created by Frank
 */
public class Array1 {
    static Random r = new Random();
    static char[] src = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();

    // Create a random String
    public static String randString(int length) {
        char[] buf = new char[length];
        int rnd;
        for (int i = 0; i < length; i++) {
            rnd = Math.abs(r.nextInt()) % src.length;
            buf[i] = src[rnd];
        }
        return new String(buf);
    }

    // Create a random array of Strings
    public static String[] randStrings(int length, int size) {
        String[] s = new String[size];
        for (int i = 0; i < size; i++) {
            s[i] = randString(length);
        }
        return s;
    }

    public static void print(byte[] b) {
        for (byte aB : b) {
            System.out.println(aB + " ");
        }
        System.out.println();
    }

    public static void print(String[] s) {
        for (String value : s) {
            System.out.print(value + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        byte[] b = new byte[15];
        r.nextBytes(b);
        print(b);
        java.util.Arrays.sort(b);
        print(b);
        int loc = Arrays.binarySearch(b, b[10]);
        System.out.println("Location of " + b[10] + " = " + loc);
        String[] s = randStrings(4, 10);
        print(s);
        Arrays.sort(s);
        print(s);
        loc = Arrays.binarySearch(s, s[4]);
        System.out.println("Location of " + s[4] + " = " + loc);
    }
}

 

posted @ 2016-11-07 17:39  FrankYou  阅读(1847)  评论(0编辑  收藏  举报