Java的Arrays类
来自CloudWiki
Array类简介
java.util.Arrays类包括各种各样的静态方法,用于实现数组的排序和查找,数组的比较和填充数组元素,以及返回数组的字符串表示,这些方法都有对所有基本数据类型的重载方法。
使用方法:
引入相关库:
import java.util.Arrays;
常用操作
返回字符串
- Arrays.toString()方法来返回一个字符串,该字符串代表了数组中的所有元素。例如,下面代码把数组以字符串方式显示:
int[] array= {1,3,5,7,9}; System.out.println(Arrays.toString(array));
程序运行结果显示:
[1, 3, 5, 7, 9]
数组排序
- Arrays.sort方法对整个数组或部分数组进行排序。例如,下面代码对整数数组进行了排序。
int[] array= {1,5,3,9,7}; System.out.println("排序前的数组为:"); System.out.println(Arrays.toString(array)); Arrays.sort(array); System.out.println("排序后的数组为:"); System.out.println(Arrays.toString(array));
上面代码执行的结果为:
排序前的数组为: [1, 5, 3, 9, 7] 排序后的数组为: [1, 3, 5, 7, 9]
数组查找
- .Arrays.binarySearch方法使用二分搜索法来搜索指定的 数值型和字符型数组,以获得指定的值。
注意:必须在进行此调用之前对数组进行排序(通过 sort方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
例如,下面代码在整数数组中查找关键字:
int[] array= {1,5,3,9,7}; System.out.println("排序前的数组为:"); System.out.println(Arrays.toString(array)); Arrays.sort(array); System.out.println("排序后的数组为:"); System.out.println(Arrays.toString(array)); System.out.println("3在数组中的位置为:"+ Arrays.binarySearch(array, 3));
程序执行的结果为:
排序前的数组为: [1, 5, 3, 9, 7] 排序后的数组为: [1, 3, 5, 7, 9] 3在数组中的位置为:1
数组复制
- Arrays.copyOf方法可以复制指定数组形成一个新的数组,ArraysCopyOfRange方法可以将指定数组的指定范围复制到一个新数组。
例如,如下代码实现了整个和部分数组的复制
int[] array= {1,5,3,9,7}; //生成一个长度为7的数组,并把Array的值复制到数组中,超出部分用默认值填充 int[] b=Arrays.copyOf(array,7); //生成一个新数组,成员为array数组中的第1、2个元素 int[] c=Arrays.copyOfRange(array, 1, 3);
注:要使用这个方法,首先要import java.util.*;
Arrays.copyOfRange(T[ ] original,int from,int to)
将一个原始的数组original,从小标from开始复制,复制到小标to,生成一个新的数组。
注意这里包括下标from,不包括下标to。
数组相等
- Arrays.equals 方法可比较两个数组是否相等,若两数组长度相等且所有元素值都相等,返回true,否则返回false。
例如,如下代码判断数组是否相等:
int[] array= {1,5,3,9,7}; int[] array1={1,5,3,9,7}; System.out.println("array和array1是否指向同一段内存:"+(array==array1)); System.out.println("array和array1是否相等:"+Arrays.equals(array, array1));
上段代码运行的结果为:
array和array1是否指向同一段内存:false array和array1是否相等:true