在java中,对于数组的操作提供一个Arrays类工具,专门针对数组提供一些方法(静态方法)。下面是对于Arrays工具类的常用方法进行说明。
1.Arrays类工具的拼串方法
-
案例:给定一 数组{1,2,3}将数组中的元素,拼接成一个漂亮的字符串[1,2,3]。
将数组的元素进行拼串的常用方法
|
方法一:可以通过StringBuffer类或者StringBuilder类进行操作
|
方法二:可以通过Arrays类工具进行操作,Arrays工具类中含有一个toString()方法对数组进行拼串
|
//方法一:利用StringBuffer类或者StringBuilder类进行拼串的操作
public class MyTest1 {
public static void main(String[] args) {
//将数组{1,2,3}拼接成一个漂亮的字符串[1,2,3]
int [] arr={1,2,3};
//方法一:利用StringBuilder类进行拼串的操作
StringBuilder sb = new StringBuilder("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
sb.append(arr[i]).append("]");
else{
sb.append(arr[i]).append(",");
System.out.println(sb.toString());
}
//方法二:利用ArraystoString()方法可以实现数组的拼串操作
public class MyTest2 {
public static void main(String[] args) {
//将数组{1,2,3}拼接成一个漂亮的字符串[1,2,3]
int [] arr={1,2,3};
//方法二:利用Arrays.toString()方法进行拼串
System.out.println(Arrays.toString(arr));
}
2.Arrays类工具中数组排序方法
Arrays类工具中数组排序方法
|
sort(Object[] a) 根据元素的自然顺序对指定对象数组按升序进行排序。
|
-
案例:给定一无序数组{8,2,6,3,4,7,1,9,5},对数组进行排序。我们知道有很多排序算法,可以对数组进行排序。在Arrays这个类中也含有对数组进行排序的方法,下面即为利用Arrays类中的方法进行排序。
import java.util.Arrays;
public class MyTest3 {
public static void main(String[] args) {
int [] arr={8,2,6,3,4,7,1,9,5};
//利用Arrays数组类中的方法进行数组的排序
//此方法对数组进行的是升序的排列
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
3.Arrays类工具实现二分查找
Arrays类工具实现二分查找
|
binarySearch(int[] a, int key) 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
注意:利用数组类工具进行对数组进行二分查找,前提是数组必须有序
|
-
案例:给定一数组{1,2,3,4,4,4,5,6,7,8,9,10},利用数组类工具中的方法对于元素4进行二分查找。
import java.util.Arrays;
public class MyTest4 {
public static void main(String[] args) {
/*利用数组类工具对数组进行二分查找,前提必须是该数组必须有序
binarySearch(int[] a, int key)
使用二分搜索法来搜索指定的 int 型数组,以获得指定的值
int [] arr={1,2,3,4,4,4,5,6,7,8,9,10};
//数组工具类对于数组元素4的二分查找
int index = Arrays.binarySearch(arr, 4);
System.out.println(index);
}
4.Arrays类工具实现比较两个数组元素是否一致
Arrays类工具实现比较两个数组元素是否一致
|
equals(int[] a, int[] a2) 如果两个指定的 int 型数组彼此相等,则返回 true
|
-
案例:有两个数组arr={1,2,3,4},arr2={1,2,3,4},比较两个数组元素是否一致。
//自己书写方法比较两个数组的元素是否一致
public class MyTest5 {
public static void main(String[] args) {
//利用逻辑自己书写比较两个数组的元素是否一致
int [] arr={1,2,3,4};
int [] arr2={1,2,3,5};
boolean flag=biBjiao(arr,arr2);
System.out.println(flag);
private static boolean biBjiao(int[] arr, int[] arr2) {
if(arr.length!=arr2.length){
return false;
int length = arr.length;
for (int i = 0; i < length; i++) {
if(arr[i]!=arr2[i]){
return false;
return true;
}
public class MyTest6 {
public static void main(String[] args) {
//利用Arrays类工具比较两个数组元素值是否一致
int [] arr={1,2,3,4};
int [] arr2={1,2,3,5};
boolean flag = Arrays.equals(arr, arr2);
System.out.println(flag);
}
5.Arrays类工具实现拷贝一个数组
Arrays类工具实现拷贝一个数组
|
copyOf(int[] original, int newLength) 复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
|
copyOfRange(int[] original, int from, int to) 将指定数组的指定范围复制到一个新数组
|
import java.util.Arrays;
public class MyTest7 {
public static void main(String[] args) {
/*copyOf(int[] original, int newLength) 复制指定的数组,
截取或用 0 填充(如有必要),以使副本具有指定的长度*/
int [] arr={1,2,3,4,5,6,7,8,9};
//从旧数组中0索引处开始拷贝5个元素,到一个新的数组中
int[] newarr = Arrays.copyOf(arr, 5);
System.out.println(Arrays.toString(newarr));
/*copyOfRange(int[] original, int from, int to) 将指定数组的指定范围复制到一个新数组 */
//根据起始索引与终止索引,从旧数组中拷贝一部分数组,到一个新的数组中,含头不含尾
int[] range = Arrays.copyOfRange(arr, 2, 5);
System.out.println(Arrays.toString(range));