Java数组的定义及常用方法

数组:一组相同类型的数据集合,长度固定

一维数组:

方式1:
先声明数组(定义数组):尚未开辟内存空间
再创建数组:在内存中,根据数组长度,开辟一块"连续"的内存空间,并完成初始化(默认值)

数据类型默认值
整数0
浮点数0.0
char空字符
booleanfalse
Stringnull
String[] array01;
array01 = new String[10];

方式2:声明+创建

double[] array02 = new double[6];

方式3:声明 + 自定义初始化

char[] array03 = { '鼠', '牛', '虎', '兔', '龙', '蛇' };
二维数组:

方式1:声明 + 创建 二维数组 (规则)

int[][] array03 = new int[5][3]; // 包含5个一维数组,每个一维数组的长度为3
int array04[][] = new int[7][10]; // 包含7个一维数组,每个一维数组的长度为10
array03[2][1] = 1024; // 访问二维数组中的元素:将1024存入第3个一维数组中的第2个元素中

方式2:声明 + 创建 二维数组(不规则)

int[] array05[] = new int[4][];// 包含4个一维数组,每个一维数组的长度不固定
array05[0] = new int[5];
array05[1] = new int[2];
array05[2] = new int[7];
array05[3] = new int[9];

方式3:声明 + 创建 + 初始化值

int[][] array06 = { { 1, 3, 5 }, { 2, 4, 6, 8 }, { 11, 21, 31, 41, 51 } };
Arrays工具类:提供数组的常见操作

常用方法:
1.Arrays.toString( ):元素转换为字符串内容

String[] array01 = { "S水瓶座", "B白羊座", "J金牛座", "T天蝎座", "C处女座","B白糖座" };
String result01 = Arrays.toString(array01);
System.out.println(result01);

输出结果:

[S水瓶座, B白羊座, J金牛座, T天蝎座, C处女座, B白糖座]

2.Arrays.sort( ) :排序(快速排序算法实现,默认升序)

int[] array02 = { 12, 17, 10, 22, 19, 14, 25 };
Arrays.sort(array02);
System.out.println("排序后:" + Arrays.toString(array02));
Arrays.sort(array01); //字符串排序,按照字符的编码值排序
System.out.println("排序后:" + Arrays.toString(array01));

输出结果:

排序后:[10, 12, 14, 17, 19, 22, 25]
排序后:[B白糖座, B白羊座, C处女座, J金牛座, S水瓶座, T天蝎座]

3.Arrays.binarySearch(数组,指定元素):对已排序的数组,进行指定元素的查找

  • 如果找到,返回该元素的位置下标(大于等于零的一个值)
  • 如果没有找到,返回负数
char[] chs = { 'E', 'B', 'C', 'A', 'D', 'F' };
		
System.out.print("排序前:");
System.out.println(chs);
		
Arrays.sort(chs); // 排序
		
System.out.print("排序后:");
System.out.println(chs);
		
int index = Arrays.binarySearch(chs, 'X');
System.out.println("位置: " + index);

输出结果:

排序前:EBCADF
排序后:ABCDEF
位置: -7

4.Arrays.equals(数组1,数组2):比较两个数组内容是否一致

int[] array01 = { 1, 3, 5, 7, 9 };
int[] array02 = { 1, 3, 5, 7, 9 };
boolean result2 = Arrays.equals(array01, array02);
System.out.println(result2);

输出结果:

true

5.Arrays.fill(数组,自定义默认元素):自定义数组的默认元素

int[] numbers = new int[10];
Arrays.fill(numbers, -2);//默认元素为-2
System.out.println(Arrays.toString(numbers));

输出结果:

[-2, -2, -2, -2, -2, -2, -2, -2, -2, -2]

6.Arrays.copyOf(旧数组,复制元素的个数):实现数组的全部或局部复制

String[] array01 = { "北京市", "天津市", "重庆市", "上海市", "西安市", "铜川市" };
String[] array03 = Arrays.copyOf(array01, array01.length); // 全部复制
String[] array04 = Arrays.copyOf(array01, 3); // 局部复制

System.out.println("[数组1]:" + Arrays.toString(array01));
System.out.println("[数组3]:" + Arrays.toString(array03));
System.out.println("[数组4]:" + Arrays.toString(array04));

输出结果:

[数组1]:[北京市, 天津市, 重庆市, 上海市, 西安市, 铜川市]
[数组3]:[北京市, 天津市, 重庆市, 上海市, 西安市, 铜川市]
[数组4]:[北京市, 天津市, 重庆市]

补充:
System.arraycopy() 作用:实现数组的全部或局部复制
System.arraycopy(src, srcPos, dest, destPos, length);
// 参数src : 代表旧数组
// 参数srcPos : 代表旧数组复制的开始位置
// 参数dest : 代表新数组
// 参数destPos : 代表新数组的插入开始位置

String[] array05 = new String[array01.length];
System.arraycopy(array01, 0, array05, 0, array01.length); // 全部复制

String[] array06 = new String[array01.length];
System.arraycopy(array01, 2, array06, 0, 3); // 局部复制(从下标2开始复制3个元素至新数组)

System.out.println("[数组5]:" + Arrays.toString(array05));
System.out.println("[数组6]:" + Arrays.toString(array06));

输出结果:

[数组5]:[北京市, 天津市, 重庆市, 上海市, 西安市, 铜川市]
[数组6]:[重庆市, 上海市, 西安市, null, null, null]

7.Arrays.deepToString(数组):深度遍历,将二维及多维数组转成字符串

int[][] array06 = { { 1, 3, 5 }, { 2, 4, 6, 8 }, { 11, 21, 31, 41, 51 } };
System.out.println(Arrays.deepToString(array06));

输出结果:

[[1, 3, 5], [2, 4, 6, 8], [11, 21, 31, 41, 51]]
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值