Arrays类操作数组的使用

java中可以使用Arrays类中的一些static修饰的静态方法来直接操作数组


1.二分法查找 数组元素

Arrays.binarySearch(数组需要查找的元素);

PS:获得的结果过一个int类型的角标

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义一个数组
		String[] a=new String[]{"a","b","c","d","e"};
		//使用二分法查找数组元素c
		System.out.println(Arrays.binarySearch(a,"c"));
	}
}

输出结果是2,因为数组是从0角标开始,数组元素c正好处于2角标位置


2.指定范围的二分法查找数组元素

Arrays.binarySearch(数组,从角标位置开始,角标位置结束,需要查找的元素);

PS:获得的结果过一个int类型的角标

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义一个数组
		int[] a=new int[]{1,85,23,45,95,20};
		//使用指定范围的二分法 需要先将数组按升序排列
		Arrays.sort(a);
		for(int i:a)
		{
			//可以看到数组已经被排序
			System.out.println(i);
		}
		//使用二分法查找数组元素c,输出结果为1
		System.out.println(Arrays.binarySearch(a,0,5,20));
	}
}

3.数组复制

Arrays.copyOf(被复制的数组新数组的长度);

PS:返回的是一个数组类型

PS:如果新数组的长度<原数组的长度,则只复制新数组长度的元素

如果新数组长度>原数组长度,则超出原数组的部分用0、false、null补全

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义一个数组
		int[] a=new int[]{1,85,23,45,95,20};
		int[] b=Arrays.copyOf(a,6);
		for(int c:b){
			//输出结果为{1,85,23,45,95,20},与数组a完全一致
			
			System.out.println(c);
		}
	}
}

4.复制指定范围的数组

Arrays.copyOfRange(原数组从角标位置开始复制角标位置结束复制);

PS:返回一个数组类型

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义一个数组
		int[] a=new int[]{1,85,23,45,95,20};

		//复制指定范围的数组
		int[] b=Arrays.copyOfRange(a,4,5);
		for(int c:b){
			//输出结果为95,从数组a的角标4开始角标5结束,不包含角标5
			
			System.out.println(c);
		}
	}
}

5.比较数组

Arrays.equals(数组A数组B);

PS:返回一个Boolean类型

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义3个数组
		int[] a=new int[]{1,2,3,4};
		int[] b=new int[]{2,2,2,2};
		int[] c=new int[]{1,2,3,4};
		//数组a与数组b不同,输出false
		System.out.println(Arrays.equals(a,b));
		//数组a与数组c完全相同,输出true
		System.out.println(Arrays.equals(a,c));
	}
}

6.为数组赋值

Arrays.fill(原数组赋值的元素)

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义1个数组
		int[] a=new int[]{1,2,3,4};
		//为数组a所有角标均赋值为3
		Arrays.fill(a,3);
		for(int b:a){
			//输出元素均为3
			System.out.println(b);
		}
	}
}

7.为指定范围的数组赋值

Arrays.fill(原数组从角标位置开始到角标位置结束赋值元素);

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义1个数组
		int[] a=new int[]{1,2,3,4};
		//为数组a[0,1)角标赋值为5
		Arrays.fill(a,0,1,5);
		for(int b:a){
			//输出结果
			System.out.println(b);
		}
	}
}

8.对数组进行升序排序

Arrays.sort(原数组);

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义1个数组
		int[] a=new int[]{5,2,7,4};
		//对数组a进行排序
		Arrays.sort(a);
			//输出结果2,4,5,7
			for(int b:a){
			System.out.println(b);
			}
	}
}

9.对指定范围的数组进行排序

Arrays.sort(原数组从角标位置开始到角标位置结束);

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义1个数组
		int[] a=new int[]{5,2,7,4,9,8};
		//对数组a进行排序
		Arrays.sort(a,0,3);
			//输出结果2,5,7,4,9,8
			//[0,3)角标元素被排列
			for(int b:a){
			System.out.println(b);
			}
	}
}

10.将数组转换成字符串

Arrays.toString(原数组);

import java.util.Arrays;

public class Test  
{
	public static void main(String[] args) 
	{
		//定义1个数组
		String[] a=new String[]{"HELLO","WORLD","hello","world"};
		//将数组转换成字符串
		String b=Arrays.toString(a);
		//输出结果[HELLO,WORLD,hello,world]
		//元素之间用,和空格分隔
		System.out.println(b);
			
	}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值