- public static void sort(long[] a) 这个方法会将一个long类型数组进行排序,java原码中有说明,这个排序是用快速排序算法实现的。
示例代码
- long[] a={1,3,2,4,6,8,7};
- System.out.println("排序前:");
- for(int i=0;i<a.length;i++)
- {
- System.out.println(a[i]);
- }
- Arrays.sort(a);
- System.out.println("排序后:");
- for(int i=0;i<a.length;i++)
- {
- System.out.println(a[i]);
- }
运行结果
- 排序前:
- 1
- 3
- 2
- 4
- 6
- 8
- 7
- 排序后:
- 1
- 2
- 3
- 4
- 6
- 7
- 8
- public static void sort(long[] a, int fromIndex, int toIndex)
- a 被排序的数组
- fromIndex 需要排序的起始位置,包括fromIndex这个位置的元素。
- toIndex需要排序的结束位置,不包括toIndex这个位置的元素。
- 这个方法会把给定的long 类型数组按指定的排序起始位置的结束位置来排序。
示例代码
- long[] a={6,3,2,4,1,5,8,7};
- System.out.println("排序前:");
- for(int i=0;i<a.length;i++)
- {
- System.out.println(a[i]);
- }
- Arrays.sort(a,0,4);//从0开始到4(不包括4)
- System.out.println("排序后:");
- for(int i=0;i<a.length;i++)
- {
- System.out.println(a[i]);
- }
运行结果
- 排序前:
- 6
- 3
- 2
- 4
- 1
- 5
- 8
- 7
- 排序后:
- 2
- 3
- 4
- 6
- 1
- 5
- 8
- 7
- public static int binarySearch(long[] a, long key)
- a:指定数组
- key:要查找的元素
- 返回这个元素所在的索引位置
- 给定一个long类型数组,一个要查找的元素,此方法实现会返回该元素的的索引位置。当查找的元素不存在时返回“-1”。需要注意的是,这个给定的long类型数组必须是经过排序的,不然会返回不确定的结果!
示例代码
- long[] a={6,3,2,4,1,5,8,7};
- Arrays.sort(a);
- System.out.println("排序后:");
- for(int i=0;i<a.length;i++)
- {
- System.out.print(" "+a[i]);
- }
- System.out.println(" ");
- System.out.println("1的索引位置为:"+Arrays.binarySearch(a, 1));
运行结果
- 排序后:
- 1 2 3 4 5 6 7 8
- 1 的索引位置为:0
- public static String deepToString(Object[] a)
- a:Object类型数组
- 结果打印出这个素组中的所有元素,及元素的子元素!
示列代码
- long[] a={6,3,2,4,1,5,8,7};
- Object[] b={1,2,3,a};
- System.out.println("调用deepToString方法后的结果为:"+Arrays.deepToString(b));
运行结果
- 调用deepToString方法后的结果为:[1, 2, 3, [6, 3, 2, 4, 1, 5, 8, 7]]
- public static void fill(long[] a, int fromIndex, int toIndex, long val)
- a:Long类型数组
- fromIndex:填充起始位置
- toIndex:填充结束位置(不包括这个位置的元素)
- val:用来填充的数值
- 该方法根会将指定的数组从fromIndex开始到toIndex(不包括这个位置)的所有元素用val填充,当fromIndex=toIndex时,此操作并无意义,当fromIndex>toIndex时抛异常。
示例代码
- long[] a={6,3,2,4,1,5,8,7};
- Arrays.fill(a,0,3,1 );
- System.out.println("调用fill方法后的结果为:");
- for(int i=0;i<a.length;i++)
- {
- System.out.print(" "+a[i]);
- }
运行结果
- 调用fill方法后的结果为:
- 1 1 1 4 1 5 8 7
- 其实public static void fill(long[] a, int fromIndex, int toIndex, long val) 方法是public static void fill(long[] a, long val) 的重载方法,而public static void fill(long[] a, long val) 这个方法很明显,是将指定的数组的所有元素都用val填充,示例就省略不写啦!
- public static boolean deepEquals(Object[] a1, Object[] a2)
- 该方法可对将两个Object类型数组作深度比较,即只有a2和a2所有的元素和元素的子元素全部相等时,才会反回true。
示例代码
- long[] a={6,3,2,4,1,5,8,7};
- long[] b={6,3,2,4,1,5,8,7};
- long[] c={0,3,2,4,1,5,8,7};
- Object[] e={1,2,3,a};
- Object[] f={1,2,3,b};
- Object[] g={1,2,3,c};
- System.out.println(Arrays.deepEquals(e, f));
- System.out.println(Arrays.deepEquals(f, g));
运行结果
- true
- false
*************************************************************************************************************************************
接下来看看Integer的几个内置方法:
1, String toBinaryString(int i) 给定一个int类型数据,返回这个数据的二进制字符串。
示例:
- int x=1;
- int y=2;
- int z=3;
- System.out.println(x+"的二进制表示为:"+Integer.toBinaryString(x));
- System.out.println(y+"的二进制表示为:"+Integer.toBinaryString(y));
- System.out.println(z+"的二进制表示为:"+Integer.toBinaryString(z));
运行结果为:
- 1的二进制表示为:1
- 2的二进制表示为:10
- 3的二进制表示为:11
2,int bitCount(int i) 给定一个int类型数据,返回这个数据的二进制串中“1”的总数量。
示例:
- int x=1;
- int y=2;
- int z=3;
- System.out.println(x+"的二进制表示为:"+Integer.toBinaryString(x)+" bitCount方法返回值为:"+Integer.bitCount(x));
- System.out.println(y+"的二进制表示为:"+Integer.toBinaryString(y)+" bitCount方法返回值为:"+Integer.bitCount(y));
- System.out.println(z+"的二进制表示为:"+Integer.toBinaryString(z)+" bitCount方法返回值为:"+Integer.bitCount(z));
运行结果为:
- 1的二进制表示为:1 bitCount方法返回值为:1
- 2的二进制表示为:10 bitCount方法返回值为:1
- 3的二进制表示为:11 bitCount方法返回值为:2
3,int numberOfLeadingZeros(int i) 给定一个int类型数据,返回这个数据的二进制串中从最左边算起连续的“0”的总数量。因为int类型的数据长度为32所以高位不足的地方会以“0”填充。
示例:
- int x=1;
- int y=2;
- int z=5;
- System.out.println(x+"的二进制表示为:"+Integer.toBinaryString(x)+"最左边开始数起连续的0的个数为:"+Integer.numberOfLeadingZeros(x));
- System.out.println(y+"的二进制表示为:"+Integer.toBinaryString(y)+"最左边开始数起连续的0的个数为:"+Integer.numberOfLeadingZeros(y));
- System.out.println(z+"的二进制表示为:"+Integer.toBinaryString(z)+"最左边开始数起连续的0的个数为:"+Integer.numberOfLeadingZeros(z));
运行结果为:
- 1的二进制表示为:1最左边开始数起连续的0的个数为:31
- 2的二进制表示为:10最左边开始数起连续的0的个数为:30
- 5的二进制表示为:101最左边开始数起连续的0的个数为:29
4,int numberOfTrailingZeros(int i) 给定一个int类型数据,返回这个数据的二进制串中从最右边算起连续的“0”的总数量。因为int类型的数据长度为32所以高位不足的地方会以“0”填充。
- int x=1;
- int y=2;
- int z=5;
- System.out.println(x+"的二进制表示为:"+Integer.toBinaryString(x)+"最右边开始数起连续的0的个数为:"+Integer.numberOfTrailingZeros(x));
- System.out.println(y+"的二进制表示为:"+Integer.toBinaryString(y)+"最右边开始数起连续的0的个数为:"+Integer.numberOfTrailingZeros(y));
- System.out.println(z+"的二进制表示为:"+Integer.toBinaryString(z)+"最右边开始数起连续的0的个数为:"+Integer.numberOfTrailingZeros(z));
运行结果为:
- 1的二进制表示为:1最右边开始数起连续的0的个数为:0
- 2的二进制表示为:10最右边开始数起连续的0的个数为:1
- 5的二进制表示为:101最右边开始数起连续的0的个数为:0
5,Integer decode(String nm) 给定一个10进制,8进制,16进制中任何一种进制的字符串,该方法可以将传入的字符串转化为10进制数字的Integer类型并返回。
示例:
- String a="010";//八进制
- String b="10";//十进制
- String c="0X10";//十六进制
- System.out.println("8进制数据"+a+" 解析结果为:"+Integer.decode(a));
- System.out.println("10进制数据"+b+" 解析结果为:"+Integer.decode(b));
- System.out.println("16进制数据"+c+" 解析结果为:"+Integer.decode(c));
运行结果为:
- 8进制数据010 解析结果为:8
- 10进制数据10 解析结果为:10
- 16进制数据0X10 解析结果为:16