Java数组常用操作

  • 目录

1.数组长度
2.数组填充
3.数组复制
4.数组比较
5.数组排序
6.在数组中搜索指定元素
7.把数组转换成字符串


数组的常用操作包括数组的填充、复制、比较、排序等。Java提供了相应对数组的操作的系统函数(方法),利用系统函数(方法)可以对数组进行各种操作。


1、数组长度

数组长度指的是数组的大小,也就是数组包含元素的个数。如果想获得数组的长度,可以用其本身的 length 属性获得。使用方法就是在数组名后加 “.length”。代码如下:

public class Main {
	public static void main(String[] args) {
		int[] arr = {1, 2, 3, 4, 5, 6, 7};
		int len = arr.length;
		System.out.println("数组长度为:" + len);
	}
}
//运行结果如下: 
//数组长度为:7

2、数组填充

数组填充指的是将一个数组或数组指定元素用固定值添加到数组中。可以使用 Arrays 类提供的 fill 方法对数组进行填充。语法如下:


Arrays.fill(数组名, 值)     作用:将值全部填充到数组
Arrays.fill(数组名, 开始下标, 结束下标, 值)    作用:将值填充到从开始下标到结束下标部分(前闭后开)


代码实际应用如下:

import java.util.Arrays;
public class Main {
	public static void main(String[] args) {
		int[] a = new int[5];
		int[] b = new int[5];
		Arrays.fill(a, 1); //给数组 a 填充值 1
		Arrays.fill(b, 2, 4, 20);//用 20 来填充数组b的开始下标2到结束下标4部分
		//遍历数组的值
		for(int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");	
		}
		System.out.println();
		for(int i = 0; i < b.length; i++) {
			System.out.print(b[i] + " ");
		}
	}
}
//运行结果如下
// 1 1 1 1 1
// 0 0 20 20 0

3、数组复制

数组复制是将一个指定数组范围内的元素值复制到另一个数组中去,Java提供了 Arraycopy函数(方法)来进行数组的复制操作。语法如下:


Arraycopy(数组a, 开始复制下标, 复制到数组b, 开始复制下标, 复制长度);


实际代码如下:

public class Main {
	public static void main(String[] args) {
		int[] a = {1, 2, 3, 4, 5};
		int[] b = {11, 12, 13, 14, 15};
		//将数组b复制到数组a
		System.arraycopy(b, 1, a, 2, 3);
		System.out.print("复制后a数组的值:");
		for(int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
	}
}
//运行结果如下:
//复制后a数组的值:1 2 12 13 14 

4、数组比较

数组之间也可以比较,如果两个数组的长度一样,并且相同位置的元素也一样,则这两个数组相等,否则,不相等。可以使用 Arrays 提供的 equals 来判断两个数组是否相等。语法如下:


Arrays.equals(数组1, 数组2);


注意:返回值为 boolean值!!!
实际代码如下:

import java.util.Arrays;
public class Main {
	public static void main(String[] args) {
		int[] a = new int[5];
		int[] b = new int[5];
		Arrays.fill(a, 2);
		Arrays.fill(b, 1, 2, 50);
		//判断数组a,b是否相等并返回相应语句
		if(Arrays.equals(a, b)) {
			System.out.println("两个数组相等 ");
		} else {
			System.out.println("两个数组不相等");
		}
	}
}
//运行结果如下:
//两个数组不相等

5、数组排序

数组排序指的是将数组按照一定的顺序进行排列,实际应用中经常会用到对数组进行排序操作,数组排序主要包括 srot 函数(方法)排序和冒泡排序。Arrays 提供了 sort 函数(方法)排序,语法如下:


Arrays.sort(数组);
Arrays.sort(数组, 开始下标, 结束下标);
注意:它们是升序排序!!!
实际代码如下:

import java.util.Arrays;
public class Main {
	public static void main(String[] args) {
		int[] a = {2, 7, 34, 12, 44};
		int[] b = {3, 32, 88, 56, 23};
		//将数组a全部排序
		Arrays.sort(a);
		//将数组b从下标2到下标4排序
		Arrays.sort(b, 2, 4);
		System.out.println("数组a的排序结果:");
		for(int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println();
		System.out.println("=============");
		System.out.println("数组b的排序结果:");
		for(int i = 0; i < b.length; i++) {
			System.out.print(b[i] + " ");
		}
	}
}
//运行结果如下:
//数组a的排序结果:
//2 7 12 34 44 
//=============
//数组b的排序结果:
//3 32 56 88 23 

6、在数组中搜索指定元素

有时需要搜索数组中某个元素是否存在,可以使用 Arrays 提供的 binarySearch 函数(方法)来解决这个问题。语法如下:


binarySearch(数组, 指定元素);
binarySearch(数组, 开始位置, 结束位置, 指定元素);


注意:该方法的返回值是 int 类型,指的是所在下标,需对数组排序过后使用,否则查询数组元素不在数组array当中!!!
实际代码如下:

import java.util.Arrays;
public class Main {
	public static void main(String[] args) {
		int[] a = {12, 23, 44, 53, 66, 71, 74};
		//在数组中搜索 53
		int num1 = Arrays.binarySearch(a, 53);
		//在数组中 2-4 下标范围内搜索 74
		int num2 = Arrays.binarySearch(a, 2, 4, 74);
		if(num1 >= 0) {
			System.out.println("53 在数组 a 中的位置是" + num1);
		} else {
			System.out.println("53 不在数组 a 中");
		}
		if(num2 >= 0) {
			System.out.println("74 在数组 a 中从下标 2-4 搜索 74 的位置是" + num2);
		} else {
			System.out.println("74 不在数组 a 中从下标 2-4 的位置");
		}
	}
}
//运行结果如下:
//53 在数组 a 中的位置是3
//74 不在数组 a 中从下标 2-4 的位置

7、把数组转换为字符串

数组还可以转换为由数组元素列表组成的字符串,可以使用 Arrays 类的 toString 函数(方法),任何数组类型都可以。语法如下:


toString(数组类型 数组名);


注意:返回值为字符串类型!!!
实际代码如下:

import java.util.Arrays;
public class Main {
	public static void main(String[] args) {
		int[] a = {12, 62, 53, 74, 8};
		double[] b = {3.68, 56.44, 99.51};
		//输出数组转换后的字符串
		System.out.println("int 型数组 a 转换成字符串为:" + Arrays.toString(a));
		System.out.println("double 型数组 b 转换成字符串为:" + Arrays.toString(b));
	}
}
//运行结果如下:
//int 型数组 a 转换成字符串为:[12, 62, 53, 74, 8]
//double 型数组 b 转换成字符串为:[3.68, 56.44, 99.51]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值