Arrays操作数组的工具类

Arrays类中几种常用的方法

Arrays是Java中操作数组的工具类
在使用时需要导入import java.util.Arrays
1.1数组转字符串Arrays.toString(数组)
数组可以是int[] arr;double[] arr;float[] arr;char[] arr;byte[] arr;boolean[] arr;long[] arr;short[] arr;这八种基本数据类型的数组。
将数组的内容转化为字符串的形式,可以有来输出Ststem.out.println(Arrays.toString(指定数组))

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        int[] arr1 = {1,2,3,4,5,6,7,8,9,10};
        double[] arr2 = {1.0,2.0,3.0,4.0,5.0,6.0,6.6};
        boolean[] arr3 = {true,false};
        char[] arr4 = {'h','e','l','l','o'};
        long[] arr5 = {1000,2000,3000};
        System.out.println(Arrays.toString(arr1));
        System.out.println(Arrays.toString(arr2));
        System.out.println(Arrays.toString(arr3));
        System.out.println(Arrays.toString(arr4));
        System.out.println(Arrays.toString(arr5));
        /**输出结果为:
        [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 6.6]
        [true, false]
        [h, e, l, l, o]
        [1000, 2000, 3000]*/
    }
}

1.2数组拷贝Arrays.copyOf(int[] original, int newLength)
int[] original要复制的数组,int newLength要复制的长度
当然数组拷贝也可以拷贝其他数组类型

        int[] arr1 = {1,2,3,4,5,6,7,8,9,10};
        int[] arr2 = Arrays.copyOf(arr1,10);//可以选择复制的长度

注意:
(1).newLength参数不能是负数
(2).original不能是null (空)

		int[] arr2 = Arrays.copyOf(arr1,-1);//异常:NegativeArraySizeException  
		
		int[] arr3 = null;
      	int[] arr2 = Arrays.copyOf(arr3,10);//异常:NullPointerException

1.3数组排序Arrays.sort()
Arrays.sort(int[] arr)当参数只有一个数组的时候,会将数组的全部内容默认从小到大排序。当然也可以选择性排序,只对数组的一部分内容进行排序,Arrays.sort(int[] arr,int fromIndex,int toIndex),其中fromIndex和toIndex是要排序的开始索引和终止索引
特别的这个区间是一个左闭右开区间——[fromIndex,toIndex),我们可以通过代码来验证:

    public static void main(String[] args) {
        int[] arr1 = {2, 5, 1, 4, 3, 9, 6, 7, 8, 10};
        //formIndex:2
        //toIndex:8
        Arrays.sort(arr1, 2, 8);
        System.out.println(Arrays.toString(arr1));
   	}
   	//运行结果:[2, 5, 1, 3, 4, 6, 7, 9, 8, 10]
   	//         0, 1, 2, 3, 4, 5, 6, 7, 8, 9

1.4二分查找Arrays.binarySearch()
二分查找一个数,前提是这个数组有序,所以在使用Arrays.binarySearch会先将这个数组进行排序(Arrays.sort)
在指定数组中寻找一个数,如果找到了返回这个数的索引,如果没有找到则返回计算机觉得应该所在位置的索引。

    public static void main(String[] args) {
        int[] arr1 = {2, 5, 1, 4, 3, 9, 6, 7, 8, 10};
        int ret = Arrays.binarySearch(arr1,9);
        /*
        同样的也可以选择查找范围
        fromIndex = 1;
        toIndex = 8;
        key = 9;
        int ret = Arrays.binarySearch(arr1,1,8,9);
        */
   	}

1.5数组填充Arrays.fill()
将数组的全部或部分填充为指定内容

        int[] arr = new int[10];
        Arrays.fill(arr,99);
        System.out.println(Arrays.toString(arr));
        //[99, 99, 99, 99, 99, 99, 99, 99, 99, 99]
        //fromIndex = 0;
        //toIndex = 4;
        //[0,4)
        Arrays.fill(arr,0,4,66);
        System.out.println(Arrays.toString(arr));
        //[66, 66, 66, 66, 99, 99, 99, 99, 99, 99]

根据输出结果再次证实toIndex是取不到,左闭右开区间
1.6判断数组是否相同Arrays.equals(int[] arr1,int[] arr2)
规则:
如果两个数组以相同的顺序包含相同的元素,则它们是相等的。返回true,否则返回false

        int[] arr1 = {1,2,3,4,5,6,7,8,9,10};
        int[] arr2 = {2,1,5,3,4,8,6,7,9,10};
        System.out.println(Arrays.equals(arr1,arr2));//false
        int[] arr3 = {1,2,3,4,5,6,7,8,9,10};
        System.out.println(Arrays.equals(arr1,arr3));//true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值