`

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

 
阅读更多
Java代码  收藏代码
  1. public static void sort(long[] a) 这个方法会将一个long类型数组进行排序,java原码中有说明,这个排序是用快速排序算法实现的。  

 

    示例代码

 

   

Java代码  收藏代码
  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代码  收藏代码
  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代码  收藏代码
  1. public static void sort(long[] a, int fromIndex, int toIndex)   
  2.   
  3. a 被排序的数组  
  4. fromIndex 需要排序的起始位置,包括fromIndex这个位置的元素。  
  5. toIndex需要排序的结束位置,不包括toIndex这个位置的元素。  
  6.   
  7. 这个方法会把给定的long 类型数组按指定的排序起始位置的结束位置来排序。  

 

    示例代码

 

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

 

 示例代码

Java代码  收藏代码
  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代码  收藏代码
  1. 排序后:  
  2.   
  3.  1 2 3 4 5 6 7 8   
  4.   
  5. 1 的索引位置为:0  

 

 

Java代码  收藏代码
  1. public static String deepToString(Object[] a)   
  2.   
  3. a:Object类型数组  
  4.   
  5. 结果打印出这个素组中的所有元素,及元素的子元素!  

 

示列代码

Java代码  收藏代码
  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代码  收藏代码
  1. 调用deepToString方法后的结果为:[1, 2, 3, [6, 3, 2, 4, 1, 5, 8, 7]]  

 

Java代码  收藏代码
  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代码  收藏代码
  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代码  收藏代码
  1. 调用fill方法后的结果为:  
  2.  1 1 1 4 1 5 8 7  

 

 

Java代码  收藏代码
  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代码  收藏代码
  1. public static boolean deepEquals(Object[] a1, Object[] a2)   
  2.   
  3. 该方法可对将两个Object类型数组作深度比较,即只有a2和a2所有的元素和元素的子元素全部相等时,才会反回true。  

 示例代码

Java代码  收藏代码
  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代码  收藏代码
  1. true  
  2. false  

 

 

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

 

 

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

 

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

Java代码  收藏代码
  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代码  收藏代码
  1. 1的二进制表示为:1  
  2. 2的二进制表示为:10  
  3. 3的二进制表示为:11  

 

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

 

 示例:

Java代码  收藏代码
  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代码  收藏代码
  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代码  收藏代码
  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代码  收藏代码
  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代码  收藏代码
  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代码  收藏代码
  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代码  收藏代码
  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代码  收藏代码
  1. 8进制数据010  解析结果为:8  
  2. 10进制数据10 解析结果为:10  
  3. 16进制数据0X10 解析结果为:16  

 

分享到:
评论

相关推荐

    第03章 方法与数组 11 Arrays工具类

    在Java编程语言中,Arrays工具类是Java标准库(java.util包)的一部分,它提供了大量静态方法,用于操作和处理数组。本章我们将深入探讨Arrays工具类的核心功能和使用方式,帮助你更好地理解和运用这个强大的工具。 ...

    Arrays工具类常用方法

    C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 ...在Java API中提供了操作数组的工具类 java.util.Arrays,例如:排序,查找,复制,数组转集合,数组转字符串等常见操

    你清楚Arrays.binarySearch()方法的返回值吗?

    在Java编程语言中,`Arrays`类是Java.util包下的一个非常重要的工具类,它提供了大量用于操作数组的静态方法,其中包括我们今天要讨论的`binarySearch()`方法。`Arrays.binarySearch()`方法允许我们在有序数组中查找...

    Java Arrays工具类用法详解

    Arrays类是一个工具类,其中包含了数组操作的很多方法,比如搜索和排序。该类中的方法均为static修饰的,可以直接通过Arrays.xxx(xxx)的形式调用方法。 2. asList(T... a)方法 asList(T... a)方法是Arrays类中的一...

    JAVA中工具类Arrays和异常处理的实例操作.doc

    ### JAVA中工具类Arrays和异常处理的实例操作 #### 一、Arrays工具类的使用 在Java编程语言中,`Arrays`工具类提供了许多用于数组操作的方法,这些方法极大地简化了开发人员对数组的处理过程。`Arrays`类位于`java...

    java中的Arrays这个工具类你真的会用吗(一文秒懂)

    Java中的`Arrays`工具类是Java Collections Framework的一部分,位于`java.util`包下,它提供了一系列静态方法,用于处理各种类型的数组,包括排序、搜索、拷贝和比较等操作。这个类的设计目的是为了方便和高效地...

    1.1. Arrays工具类、二维数组.md

    1.1. Arrays工具类、二维数组.md

    大数据必学Java基础(二十八):Arrays工具类和数组的复制操作

    总结一下,`Arrays`工具类提供了丰富的数组操作方法,包括`toString()`用于打印数组内容,`binarySearch()`用于二分查找,`sort()`用于排序,`copyOf()`和`copyOfRange()`用于数组复制,`equals()`用于比较数组内容...

    DIY函数式方法原理

    在本主题“DIY函数式方法原理”中,我们将探讨如何在Java中实现四个关键的函数式编程方法:forEach、map、flatMap和filter。 1. **forEach**:这个方法来源于Java 8中的Stream API,用于遍历集合中的每一个元素。它...

    Java中Arrays实用方法

    /** *Arrays提供数组操作的一系列实用方法 *1输出 *2排序 *3二分查找 *4复制 *5扩容 */

    Java基础知识-day12【函数式接口、方法引用】修改后文档.pdf

    - Java通过Lambda表达式和方法引用支持函数式编程风格,允许开发者在面向对象编程中融入函数式编程的元素。 - **Lambda的延迟执行**:Lambda表达式是惰性求值的,意味着它仅在真正需要时执行,可以提升性能,避免...

    Arrays的copyOf()方法1

    在Java编程语言中,`Arrays`类是Java.util包下的一个非常重要的工具类,它提供了许多用于操作数组的静态方法,其中包括`copyOf()`方法。`copyOf()`方法主要用于复制数组,可以创建一个新的数组,其内容是原始数组的...

    java常用的集合类 Iterator迭代器的使用 foreach循环 泛型 Collections、Arrays工具

    常用的集合类Iterator迭代器的使用foreach循环 泛型Collections、Arrays工具

    Arrays类常用方法.docx

    Arrays类常用方法 Arrays类是Java语言中提供的一种工具类,主要用于操作数组。在Java编程中,数组是一...Arrays类提供了一些常用的方法来操作数组,这些方法可以帮助我们更方便地处理数组,提高编程效率和代码可读性。

    Collection与Collections,Array与Arrays的区别

    Collection与Collections,Array与Arrays的...Collection和Array是Java中两个基本的数据结构,而Collections和Arrays是两个静态类,提供了对集合和数组的各种操作。了解他们之间的区别对于Java开发人员来说非常重要。

    函数式编程思想

    Java 8的`Arrays.stream()`、`Stream.map()`和`Stream.filter()`都是高阶函数的例子。它们接受函数对象作为参数,用于对数据流进行操作。 **不可变性** 函数式编程强调数据的不可变性,即一旦创建,对象的状态就不...

    System.arraycopy和Arrays.copyOf

    `System.arraycopy` 和 `Arrays.copyOf` 都是Java中用于复制数组的方法,但它们在使用和处理异常情况上有所不同。这两个方法在处理数组复制时,提供了便利和效率,但各有其适用场景。 `System.arraycopy` 是一个...

    day12_函数式接口、方法引用_每日作业卷-答案1

    通过这些练习,我们不仅可以了解函数式接口的基本使用,还能掌握 Lambda 表达式和方法引用这两种简洁的代码表达方式,它们极大地提高了 Java 代码的可读性和可维护性。同时,对可变参数的理解也加深了我们对参数传递...

    黑马程序员Java函数式编程全套视频教程,Lambda表达式、Stream流、函数式编程一套全通关1

    例如,`Arrays.sort(list, Integer::compareTo)` 使用方法引用来对整数列表进行排序。 在Stream API中,去重和排序是常见的操作。`distinct()`方法用于去除Stream中的重复元素,而`sorted()`可以对Stream中的元素...

Global site tag (gtag.js) - Google Analytics