Java的Arrays类

来自CloudWiki
跳转至: 导航搜索

Array类简介

java.util.Arrays类包括各种各样的静态方法,用于实现数组的排序和查找,数组的比较和填充数组元素,以及返回数组的字符串表示,这些方法都有对所有基本数据类型的重载方法。

使用方法:

引入相关库:

import java.util.Arrays;

常用操作

返回字符串

  1. Arrays.toString()方法来返回一个字符串,该字符串代表了数组中的所有元素。例如,下面代码把数组以字符串方式显示:
int[] array= {1,3,5,7,9};
System.out.println(Arrays.toString(array));

程序运行结果显示:

[1, 3, 5, 7, 9]

数组排序

  1. 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]

数组查找

  1. .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

数组复制

  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。

数组相等

  1. 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