Java掌握Arrays类的常用方法

掌握Arrays类的常用方法

Arrays:此类包含用来操作数组(比如排序和搜索)的各种方法。
从以下版本开始: 1.2
常见的5个方法
1:binarySearch()二分搜索法
2:sort() 数组排序
3:fill() 数组填充
4:copyOf() 数组拷贝
int[] newArr = Arrays.copyOf(arr, arr.length);
在堆中又开辟了一块新的空间,2个数组
int[] newArr = arr; //数组的地址符赋值 两个变量同时指向一块堆内存空间 1个数组
5:toString() 字符串拼接数组

1、二分搜索法
二分搜索法(折半查找) 前提是这个数组必须是有序的
Arrays.binarySearch()
注意:二份搜索法:根据元素查找下标
找到返回当前元素的下标,没有找到返回负数

	public static void myBinarySearch(int[] arr,int ele){
		//确保数组有序
		Arrays.sort(arr);
		
		//int[] arr = {-10,1,10,20,45,56,88}; 
		//定义开始和结尾的2个下标
		int start = 0;
		int end = arr.length;
		
		int index =-1;
		//保证开头下标不能超过结尾下标,否则数组就会越界
		int count = 0;
		while(start<=end){
			count++;
			int  mid = (start+end)>>>1; //折半点
			//如果目标元素和中间元素相等
			if(arr[mid]==ele){
				//把中间元素的下标赋值给index,代表找到这个元素的下标
				index = mid;
				//后面就不用比较了
				break;
				//如果目标元素比中间元素的值大
			}else if(ele>arr[mid]){
				//去数组的右边来找 并且,start变成mid+1的值,end值不变
				start = mid+1;
				//如果目标元素比中间元素的值小
			}else{
				//去数组的右边来找 并且,end变成mid-1的值,start值不变
				end = mid-1;
			}
			
		}
		
		System.out.println(count);
		if(index!=-1){
			System.out.println("元素:"+ele+"的下标是:"+index);
		}else{
			System.out.println("不存在此元素");
		}
		
		
	}
	
	
	public static void main(String[] args) {
		
		int[] arr = {10,20,45,-10,56,1,88}; //乱序数组
		myBinarySearch(arr,56);
		
		Arrays.sort(arr); //排好序的数组
		//{-10,1,10,20,45,56,88,100}
		
		int index = Arrays.binarySearch(arr, 500);
		System.out.println(index);
	}

}

2、调用Arrays提供的sort方法
Arrays.sort(arr)

public static void main(String[] args) {
		int[] arr = {10,-100,45,88,99,22,14};
		
		System.out.println("最小值:"+arr[0]);
		System.out.println("最大值:"+arr[arr.length-1]);
		//打印数组
		System.out.println(Arrays.toString(arr));

3、fill() 数组填充

Arrays.fill(arr, 0);
System.out.println(Arrays.toString(arr));

4、copyOf() 数组拷贝

   int[] newArr = Arrays.copyOf(arr, arr.length*2);
    		
    		int[] newArr = arr; //数组的地址符赋值  两个边路同时指向一块堆内存空间
    		
    		System.out.println("新数组:"+Arrays.toString(newArr));

5、toString() 字符串拼接数组
调用toString方法 这个不是遍历数组,这个是把数组中每个元素用字符串拼接起来,打印在控制台

 System.out.println(arr);
		System.out.println(Arrays.toString(arr));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值