import java.io.*; import java.util.*; public class Test { public static void main (String args[]) throws ClassCastException { int i1, k_n, k_c, key_n, data_n [] = {10, 1, 45, 20, 0, -20, 15, 90, 5, 55}; String key_c, data_c[] = {"fish", "dog", "tree", "human", "cat"}; /* 探索キー */ key_n = Integer.parseInt(args[0]); key_c = args[1]; /* 整数の場合 */ // ソート前の出力 System.out.print("sort前 "); for (i1 = 0; i1 < 10; i1++) System.out.print(data_n[i1] + " "); System.out.print("\n"); // ソートとその後の出力 Arrays.sort(data_n); System.out.print("sort後 "); for (i1 = 0; i1 < 10; i1++) System.out.print(data_n[i1] + " "); System.out.print("\n"); // 探索 k_n = Arrays.binarySearch(data_n, key_n); if (k_n >= 0) System.out.print(" " + data_n[k_n] + " が見つかりました\n"); else System.out.print(" " + key_n + " は見つかりませんでした\n"); /* 文字列の場合 */ // ソート前の出力 System.out.print("sort前 "); for (i1 = 0; i1 < 5; i1++) System.out.print(data_c[i1] + " "); System.out.print("\n"); // ソートとその後の出力 Arrays.sort(data_c); System.out.print("sort後 "); for (i1 = 0; i1 < 5; i1++) System.out.print(data_c[i1] + " "); System.out.print("\n"); // Comparatorを使用したソートとその後の出力(降順) Comparator<String> cp = new Comp(); Arrays.sort(data_c, cp); System.out.print("sort後(降順) "); for (i1 = 0; i1 < 5; i1++) System.out.print(data_c[i1] + " "); System.out.print("\n"); // 探索 k_c = Arrays.binarySearch(data_c, key_c, cp); if (k_c >= 0) System.out.print(" " + data_c[k_c] + " が見つかりました\n"); else System.out.print(" " + key_c + " は見つかりませんでした\n"); } } class Comp implements Comparator <String> { public int compare (String arg1, String arg2) { return arg2.compareTo(arg1); } }
c:\tmp>java Test 10 dog sort前 10 1 45 20 0 -20 15 90 5 55 sort後 -20 0 1 5 10 15 20 45 55 90 10 が見つかりました sort前 fish dog tree human cat sort後 cat dog fish human tree sort後(降順) tree human fish dog cat dog が見つかりました