Arrays工具类的常见方法总结

本文介绍了Java中Arrays工具类的五种常用方法:快速创建List的Arrays.asList(),二分查找的binarySearch(),排序的sort(),数组复制的copyOf()与copyOfRange(),以及数组填充的fill()。这些方法在处理数组操作时十分实用,但需要注意数组排序会改变原数组内容和Arrays.binarySearch要求有序数组。
摘要由CSDN通过智能技术生成

Arrays.asList()

利用Arrays工具类中的Arrays.asList()方法,根据给定元素快速创建List:

List<String> list = Arrays.asList("杭州","北京","上海","南京");

Arrays.binarySearch()

利用Arrays工具类中的Arrays.binarySearch()方法,进行查找:

public class Main{
    public static void main(String[] args){
        int[] array={28,12,89,73,65,18,96,50,8,36};
        int target=36;//目标元素
        
        //先排序
        Arrays.sort(array);

        //再查找
        int index=Arrays.binarySearch(array,target);

        System.out.printf("目标值%d在数组中的下标为:%d",target,index);
    }
}

注意:

        由于该方法是基于二分查找实现,数组必须处于有序状态。所以,需要先对数组进行排序,然后再通过Arrays.binarySearch()进行查找。

Arrays.sort()

利用Arrays工具类中的Arrays.sort()方法,进行排序:

public class Main{
    public static void main(String[] args){
        int[] ns ={28,12,89,73,65,18,96,50,8,36};

        //排序前
        System.out.println("排序前:"+Arrays.toString(ns));
        
        //排序
        Arrays.sort(ns);

        //排序后
        System.out.println("排序后:"+Arrays.toString(ns));
    }
}

注意:
        对数组排序实际上是修改了数组本身

例如:排序前的数组是:

int[] ns= { 9, 3 , 6, 5 }; 

在内存中,这个整型数组表示如下:


当我们调用Arrays.sort(ns)后,这个整型数组在内存中变为:变量ns指向的数组内容已经被改变了。

Arrays.copyOf()与Arrays.copyOfRange()

利用Arrays工具类中的Arrays.copyOf()与Arrays.copyOfRange()方法,进行复制:

public class Main {
	public static void main(String[] args) {

		//数组的复制
		int[] numbers1= {1,2,3,4,5,6,7,8};
		int[] target1= new int[numbers1.length];

        通过Arrays工具类的copyOf()/copyOfRange()
		System.out.println("方法2");
		int[] num= {1,3,5,7,9,11,13,15,17,19};
		
		//复制num的前4个元素:从下标0开始,复制前4个元素
		int[] arr1=Arrays.copyOf(num, 4);
		
		//复制num的所有元素
		int[] arr2=Arrays.copyOf(num, num.length);
		
		//复制num中下标2元素到下标6前的元素
		int[] arr3=Arrays.copyOfRange(num, 2, 6);
		
		//扩容数组,下标不会造成越界
		int[] arr4=Arrays.copyOfRange(num, 2, 13;
		
		//输出
		System.out.println(Arrays.toString(arr1)); //[1, 3, 5, 7]
		System.out.println(Arrays.toString(arr2)); //[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
		System.out.println(Arrays.toString(arr3)); //[5, 7, 9, 11]
		System.out.println(Arrays.toString(arr4)); //[5, 7, 9, 11, 13, 15, 17, 19, 0, 0, 0]
    }
}

注意:
        Arrays.copyOfRange()方法可以扩容数组并且下标不会造成越界。

Arrays.fill()

利用Arrays工具类中的Arrays.fill()方法,根据给定元素快速填充数组:

public class Main{
    public static void main(String[] args){
        int[] arr1=new int[8];
		int[] arr2=new int[8];
		//填充
		//方式1
		for (int i = 0; i < arr1.length; i++) {
			arr1[i]=-1;
		}
		System.out.println(Arrays.toString(arr1));//[-1, -1, -1, -1, -1, -1, -1, -1]
		
		//方式2
		Arrays.fill(arr2, -2);
		System.out.println(Arrays.toString(arr2));//[-2, -2, -2, -2, -2, -2, -2, -2]
    }
}

以上是我个人对Java中Arrays工具类常用方法的一些总结,如有错漏请务必联系,非常感谢

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓晨CH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值