Arrays的工具函数跟Integer的内置方法简述

Arrays的工具函数和Integer的内置方法简述
Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. public static void sort(long[] a) 这个方法会将一个long类型数组进行排序,java原码中有说明,这个排序是用快速排序算法实现的。  

 

    示例代码

 

   

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1.                               long[] a={1,3,2,4,6,8,7};  
  2.   
  3. System.out.println("排序前:");  
  4. for(int i=0;i<a.length;i++)  
  5. {  
  6. System.out.println(a[i]);     
  7. }  
  8. Arrays.sort(a);  
  9. System.out.println("排序后:");  
  10. for(int i=0;i<a.length;i++)  
  11. {  
  12.     System.out.println(a[i]);     
  13. }  

 

    运行结果

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 排序前:  
  2. 1  
  3. 3  
  4. 2  
  5. 4  
  6. 6  
  7. 8  
  8. 7  
  9. 排序后:  
  10. 1  
  11. 2  
  12. 3  
  13. 4  
  14. 6  
  15. 7  
  16. 8  

 

  

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. public static void sort(long[] a, int fromIndex, int toIndex)   
  2.   
  3. a 被排序的数组  
  4. fromIndex 需要排序的起始位置,包括fromIndex这个位置的元素。  
  5. toIndex需要排序的结束位置,不包括toIndex这个位置的元素。  
  6.   
  7. 这个方法会把给定的long 类型数组按指定的排序起始位置的结束位置来排序。  

 

    示例代码

 

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1.                                long[] a={6,3,2,4,1,5,8,7};  
  2.   
  3. System.out.println("排序前:");  
  4. for(int i=0;i<a.length;i++)  
  5. {  
  6. System.out.println(a[i]);     
  7. }  
  8. Arrays.sort(a,0,4);//从0开始到4(不包括4)  
  9. System.out.println("排序后:");  
  10. for(int i=0;i<a.length;i++)  
  11. {  
  12.     System.out.println(a[i]);     
  13. }  

 

 运行结果

 

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 排序前:  
  2. 6  
  3. 3  
  4. 2  
  5. 4  
  6. 1  
  7. 5  
  8. 8  
  9. 7  
  10. 排序后:  
  11. 2  
  12. 3  
  13. 4  
  14. 6  
  15. 1  
  16. 5  
  17. 8  
  18. 7  

  

 

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. public static int binarySearch(long[] a, long key)  
  2.   
  3. a:指定数组  
  4. key:要查找的元素  
  5. 返回这个元素所在的索引位置  
  6.   
  7. 给定一个long类型数组,一个要查找的元素,此方法实现会返回该元素的的索引位置。当查找的元素不存在时返回“-1”。需要注意的是,这个给定的long类型数组必须是经过排序的,不然会返回不确定的结果!  

 

 示例代码

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. long[] a={6,3,2,4,1,5,8,7};  
  2.         Arrays.sort(a);  
  3.         System.out.println("排序后:");  
  4.         for(int i=0;i<a.length;i++)  
  5.         {  
  6.             System.out.print(" "+a[i]);   
  7.         }  
  8.         System.out.println(" ");  
  9.         System.out.println("1的索引位置为:"+Arrays.binarySearch(a, 1));  

 

运行结果

 

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 排序后:  
  2.   
  3.  1 2 3 4 5 6 7 8   
  4.   
  5. 1 的索引位置为:0  

 

 

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. public static String deepToString(Object[] a)   
  2.   
  3. a:Object类型数组  
  4.   
  5. 结果打印出这个素组中的所有元素,及元素的子元素!  

 

示列代码

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. long[] a={6,3,2,4,1,5,8,7};  
  2.         Object[] b={1,2,3,a};  
  3.         System.out.println("调用deepToString方法后的结果为:"+Arrays.deepToString(b));  
  4.       

 

运行结果

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 调用deepToString方法后的结果为:[1, 2, 3, [6, 3, 2, 4, 1, 5, 8, 7]]  

 

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. public static void fill(long[] a, int fromIndex, int toIndex, long val)  
  2.   
  3. a:Long类型数组  
  4. fromIndex:填充起始位置  
  5. toIndex:填充结束位置(不包括这个位置的元素)  
  6. val:用来填充的数值  
  7.   
  8. 该方法根会将指定的数组从fromIndex开始到toIndex(不包括这个位置)的所有元素用val填充,当fromIndex=toIndex时,此操作并无意义,当fromIndex>toIndex时抛异常。  

 

示例代码

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. long[] a={6,3,2,4,1,5,8,7};  
  2.     Arrays.fill(a,0,3,1 );  
  3.     System.out.println("调用fill方法后的结果为:");  
  4.     for(int i=0;i<a.length;i++)  
  5.     {  
  6.             System.out.print(" "+a[i]);   
  7.     }  

 

运行结果

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 调用fill方法后的结果为:  
  2.  1 1 1 4 1 5 8 7  

 

 

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 其实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填充,示例就省略不写啦!  
Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. public static boolean deepEquals(Object[] a1, Object[] a2)   
  2.   
  3. 该方法可对将两个Object类型数组作深度比较,即只有a2和a2所有的元素和元素的子元素全部相等时,才会反回true。  

 示例代码

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1.                               long[] a={6,3,2,4,1,5,8,7};  
  2. long[] b={6,3,2,4,1,5,8,7};  
  3. long[] c={0,3,2,4,1,5,8,7};  
  4. Object[] e={1,2,3,a};  
  5. Object[] f={1,2,3,b};  
  6. Object[] g={1,2,3,c};  
  7. System.out.println(Arrays.deepEquals(e, f));  
  8. System.out.println(Arrays.deepEquals(f, g));  

 

运行结果

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. true  
  2. false  

 

 

*************************************************************************************************************************************

 

 

接下来看看Integer的几个内置方法:

 

1, String toBinaryString(int i) 给定一个int类型数据,返回这个数据的二进制字符串。
  示例:
  

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. int x=1;  
  2. int y=2;  
  3. int z=3;  
  4. System.out.println(x+"的二进制表示为:"+Integer.toBinaryString(x));  
  5. System.out.println(y+"的二进制表示为:"+Integer.toBinaryString(y));  
  6. System.out.println(z+"的二进制表示为:"+Integer.toBinaryString(z));  

   运行结果为:

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 1的二进制表示为:1  
  2. 2的二进制表示为:10  
  3. 3的二进制表示为:11  

 

2,int bitCount(int i) 给定一个int类型数据,返回这个数据的二进制串中“1”的总数量。

 

 示例:

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. int x=1;  
  2. int y=2;  
  3. int z=3;  
  4.       
  5. System.out.println(x+"的二进制表示为:"+Integer.toBinaryString(x)+" bitCount方法返回值为:"+Integer.bitCount(x));  
  6. System.out.println(y+"的二进制表示为:"+Integer.toBinaryString(y)+" bitCount方法返回值为:"+Integer.bitCount(y));  
  7. System.out.println(z+"的二进制表示为:"+Integer.toBinaryString(z)+" bitCount方法返回值为:"+Integer.bitCount(z));  
  8.           

 运行结果为:

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 1的二进制表示为:1 bitCount方法返回值为:1  
  2. 2的二进制表示为:10 bitCount方法返回值为:1  
  3. 3的二进制表示为:11 bitCount方法返回值为:2  

 

   3,int numberOfLeadingZeros(int i) 给定一个int类型数据,返回这个数据的二进制串中从最左边算起连续的“0”的总数量。因为int类型的数据长度为32所以高位不足的地方会以“0”填充。

 

示例:

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. int x=1;  
  2. int y=2;  
  3. int z=5;  
  4.       
  5. System.out.println(x+"的二进制表示为:"+Integer.toBinaryString(x)+"最左边开始数起连续的0的个数为:"+Integer.numberOfLeadingZeros(x));  
  6. System.out.println(y+"的二进制表示为:"+Integer.toBinaryString(y)+"最左边开始数起连续的0的个数为:"+Integer.numberOfLeadingZeros(y));  
  7. System.out.println(z+"的二进制表示为:"+Integer.toBinaryString(z)+"最左边开始数起连续的0的个数为:"+Integer.numberOfLeadingZeros(z));  
  8.           

 运行结果为:

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 1的二进制表示为:1最左边开始数起连续的0的个数为:31  
  2. 2的二进制表示为:10最左边开始数起连续的0的个数为:30  
  3. 5的二进制表示为:101最左边开始数起连续的0的个数为:29  

4,int numberOfTrailingZeros(int i) 给定一个int类型数据,返回这个数据的二进制串中从最右边算起连续的“0”的总数量。因为int类型的数据长度为32所以高位不足的地方会以“0”填充。

 

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. int x=1;  
  2. int y=2;  
  3. int z=5;  
  4.       
  5. System.out.println(x+"的二进制表示为:"+Integer.toBinaryString(x)+"最右边开始数起连续的0的个数为:"+Integer.numberOfTrailingZeros(x));  
  6. System.out.println(y+"的二进制表示为:"+Integer.toBinaryString(y)+"最右边开始数起连续的0的个数为:"+Integer.numberOfTrailingZeros(y));  
  7. System.out.println(z+"的二进制表示为:"+Integer.toBinaryString(z)+"最右边开始数起连续的0的个数为:"+Integer.numberOfTrailingZeros(z));  
  8.           

 

运行结果为:

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 1的二进制表示为:1最右边开始数起连续的0的个数为:0  
  2. 2的二进制表示为:10最右边开始数起连续的0的个数为:1  
  3. 5的二进制表示为:101最右边开始数起连续的0的个数为:0  

 

 

 5,Integer decode(String nm) 给定一个10进制,8进制,16进制中任何一种进制的字符串,该方法可以将传入的字符串转化为10进制数字的Integer类型并返回。

 

示例:

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. String a="010";//八进制  
  2. String b="10";//十进制  
  3. String c="0X10";//十六进制  
  4. System.out.println("8进制数据"+a+"  解析结果为:"+Integer.decode(a));  
  5. System.out.println("10进制数据"+b+" 解析结果为:"+Integer.decode(b));  
  6. System.out.println("16进制数据"+c+" 解析结果为:"+Integer.decode(c));  

 运行结果为:

Java代码  Arrays的工具函数跟Integer的内置方法简述
  1. 8进制数据010  解析结果为:8  
  2. 10进制数据10 解析结果为:10  
  3. 16进制数据0X10 解析结果为:16