asList(T… a)
String [] strArray = {"spring" , "summer" , "fall" , "winter" };
List strList = Arrays.asList(strArray);
binarySearch(byte[] a, byte key)
binarySearch(byte[] a, int fromIndex, int toIndex, byte key)
byte a = 0
byte[] bArray = {4 , 3 , 2 , 1 }
Arrays.sort (bArray)
System.out .println ("4在数组中的位置是" + Arrays.binarySearch (bArray, a))
System.out .println ("4在数组中的位置是" + Arrays.binarySearch (bArray, 3 , 4 , a))
使用二分搜索法来搜索指定的 byte 型数组的范围,以获得指定的值。必须在进行此调用之前对范围进行排序(通过 sort(byte [], int , int ) 方法)。如果没有对范围进行排序,则结果是不确定的。如果范围包含多个带有指定值的元素,则无法保证找到的是哪一个。
参数:
a - 要搜索的数组
fromIndex - 要搜索的第一个元素的索引(包括)
toIndex - 要搜索的最后一个元素的索引(不包括)
key - 要搜索的值
返回:
如果它包含在数组的指定范围内,则返回搜索键的索引;否则返回 (-(插入点) - 1 )。插入点 被定义为将键插入数组的那一点:即范围中第一个大于此键的元素索引,如果范围中的所有元素都小于指定的键,则为 toIndex。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0 。
抛出:
IllegalArgumentException - 如果 fromIndex > toIndex
ArrayIndexOutOfBoundsException - 如果 fromIndex < 0 或 toIndex > a.length
对于byte \char \short \long \int 是相似的
对于Object类型的数组:(如果范围包含不可相互比较的元素,例如,字符串和整数,则无法 根据其元素的自然顺序对范围进行排序,因此结果是不确定的。)
对于float 和double 数组:认为认为所有 NaN 值都是等效且相等的
// binarySearch(char[] a, char key)
// binarySearch(char[] a, int fromIndex, int toIndex, char key)
char c = 'a'
char[] charArray = {'a' , 'b' , 'c' }
Arrays.sort (charArray)
System.out .println ("'a'的位置是" + Arrays.binarySearch (charArray, c))
System.out .println ("'a的位置是" + Arrays.binarySearch (charArray, 0 , 3 , c))
// binarySearch(double[] a, double key)
// binarySearch(double[] a, int fromIndex, int toIndex, double key)
double d = 4.5
double[] doubleArray = {1.3 , 4.5 , 3.0 , 1.1 , 4.5 }
Arrays.sort (doubleArray)
System.out .println ("4.5的位置是" + Arrays.binarySearch (doubleArray, d))
System.out .println ("4.5的位置是" + Arrays.binarySearch (doubleArray, 3 , 4 , d))
// binarySearch(float[] a, float key)
// binarySearch(float[] a, int fromIndex, int toIndex, float key)
float f = 3.6 f
float[] floatArray = {(float) 3.6 , (float) 1.1 , (float) 2.2 , (float) 3.6 }
Arrays.sort (floatArray)
System.out .println ("3.6的位置是" + Arrays.binarySearch (floatArray, f))
System.out .println ("3.6的位置是" + Arrays.binarySearch (floatArray, 2 , 3 , f))
// binarySearch(int[] a, int key)
// binarySearch(int[] a, int fromIndex, int toIndex, int key)
int i = 5
int[] intArray = {1 , 2 , 3 , 5 , 7 , 4 }
Arrays.sort (intArray)
System.out .println ("5的位置是" + Arrays.binarySearch (intArray, i))
System.out .println ("5的位置是" + Arrays.binarySearch (intArray, 4 , 5 , i))
// binarySearch(long[] a, int fromIndex, int toIndex, long key)
// binarySearch(long[] a, long key)
long l = 5
long[] longArray = {1 , 2 , 3 , 5 , 7 , 4 }
Arrays.sort (longArray)
System.out .println ("5的位置是" + Arrays.binarySearch (longArray, i))
System.out .println ("5的位置是" + Arrays.binarySearch (longArray, 4 , 5 , i))
// binarySearch(Object[] a, int fromIndex, int toIndex, Object key)
// binarySearch(Object[] a, Object key)
String s1 = "hello1"
String s2 = "hello2564"
String[] strArr = new String[]{"h123" , "h345" , "h012" }
Arrays.sort (strArr)
System.out .println (s1.compareTo (s2))
System.out .println ("h123的位置是" +Arrays.binarySearch (strArr,"h123" ))
System.out .println ("h123的位置是" +Arrays.binarySearch (strArr,0 ,2 ,"h123" ))