- 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
相关推荐
在Java编程语言中,Arrays工具类是Java标准库(java.util包)的一部分,它提供了大量静态方法,用于操作和处理数组。本章我们将深入探讨Arrays工具类的核心功能和使用方式,帮助你更好地理解和运用这个强大的工具。 ...
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 ...在Java API中提供了操作数组的工具类 java.util.Arrays,例如:排序,查找,复制,数组转集合,数组转字符串等常见操
在Java编程语言中,`Arrays`类是Java.util包下的一个非常重要的工具类,它提供了大量用于操作数组的静态方法,其中包括我们今天要讨论的`binarySearch()`方法。`Arrays.binarySearch()`方法允许我们在有序数组中查找...
Arrays类是一个工具类,其中包含了数组操作的很多方法,比如搜索和排序。该类中的方法均为static修饰的,可以直接通过Arrays.xxx(xxx)的形式调用方法。 2. asList(T... a)方法 asList(T... a)方法是Arrays类中的一...
### JAVA中工具类Arrays和异常处理的实例操作 #### 一、Arrays工具类的使用 在Java编程语言中,`Arrays`工具类提供了许多用于数组操作的方法,这些方法极大地简化了开发人员对数组的处理过程。`Arrays`类位于`java...
Java中的`Arrays`工具类是Java Collections Framework的一部分,位于`java.util`包下,它提供了一系列静态方法,用于处理各种类型的数组,包括排序、搜索、拷贝和比较等操作。这个类的设计目的是为了方便和高效地...
1.1. Arrays工具类、二维数组.md
总结一下,`Arrays`工具类提供了丰富的数组操作方法,包括`toString()`用于打印数组内容,`binarySearch()`用于二分查找,`sort()`用于排序,`copyOf()`和`copyOfRange()`用于数组复制,`equals()`用于比较数组内容...
在本主题“DIY函数式方法原理”中,我们将探讨如何在Java中实现四个关键的函数式编程方法:forEach、map、flatMap和filter。 1. **forEach**:这个方法来源于Java 8中的Stream API,用于遍历集合中的每一个元素。它...
/** *Arrays提供数组操作的一系列实用方法 *1输出 *2排序 *3二分查找 *4复制 *5扩容 */
- Java通过Lambda表达式和方法引用支持函数式编程风格,允许开发者在面向对象编程中融入函数式编程的元素。 - **Lambda的延迟执行**:Lambda表达式是惰性求值的,意味着它仅在真正需要时执行,可以提升性能,避免...
在Java编程语言中,`Arrays`类是Java.util包下的一个非常重要的工具类,它提供了许多用于操作数组的静态方法,其中包括`copyOf()`方法。`copyOf()`方法主要用于复制数组,可以创建一个新的数组,其内容是原始数组的...
常用的集合类Iterator迭代器的使用foreach循环 泛型Collections、Arrays工具
Arrays类常用方法 Arrays类是Java语言中提供的一种工具类,主要用于操作数组。在Java编程中,数组是一...Arrays类提供了一些常用的方法来操作数组,这些方法可以帮助我们更方便地处理数组,提高编程效率和代码可读性。
Collection与Collections,Array与Arrays的...Collection和Array是Java中两个基本的数据结构,而Collections和Arrays是两个静态类,提供了对集合和数组的各种操作。了解他们之间的区别对于Java开发人员来说非常重要。
Java 8的`Arrays.stream()`、`Stream.map()`和`Stream.filter()`都是高阶函数的例子。它们接受函数对象作为参数,用于对数据流进行操作。 **不可变性** 函数式编程强调数据的不可变性,即一旦创建,对象的状态就不...
`System.arraycopy` 和 `Arrays.copyOf` 都是Java中用于复制数组的方法,但它们在使用和处理异常情况上有所不同。这两个方法在处理数组复制时,提供了便利和效率,但各有其适用场景。 `System.arraycopy` 是一个...
通过这些练习,我们不仅可以了解函数式接口的基本使用,还能掌握 Lambda 表达式和方法引用这两种简洁的代码表达方式,它们极大地提高了 Java 代码的可读性和可维护性。同时,对可变参数的理解也加深了我们对参数传递...
例如,`Arrays.sort(list, Integer::compareTo)` 使用方法引用来对整数列表进行排序。 在Stream API中,去重和排序是常见的操作。`distinct()`方法用于去除Stream中的重复元素,而`sorted()`可以对Stream中的元素...