# 第五章 数组

# 数组

如果说我想要存储很多的数据,我应该再程序中用什么来存储呢?

比如:

int a =100;

int b =100;

int c =100;

int d =100;

int e =100;

一次性声明大量的用于存储数据的变量 要存储的数据通常都是同类型数据,例如:考试成绩

# 什么是数组

数组(array)是一种用于存储多个相同类型数据的存储模型

# 数组的定义格式

格式一:数据类型[] 变量名

范例: int[] arr

格式二:数据类型 变量名[]

范例:int arr[]

# 一维数组初始化概述

Java中的数组必须先初始化,然后才能使用

初始化的意思:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

静态初始化

数组的初始化和数组的元素赋值操作同时进行

int[] arr = new int[]{1001,1002,1003,1004}

左边代码:

int[] arr:声明数组中的元素类型是int类型

右边代码:

new:为数组申请内存空间

int:说明数组中的元素类型是Int类型

[]说明是一个数组

{1001,1002,1003,1004}:数组中的数据

简写方式:

int[] arr = {1001,1002,1003,1004};

动态初始化

数组的初始化和数组的元素赋值操作分开进行

格式:数据类型[] 变量名 = new 数据类型[数组长度];

范例: int[] arr = new int[3];

左边代码: int:说明数组中的元素类型是int类型 []:说明这是一个数组 arr:这是数组的名称 右边代码: new:为数组申请内存空间 int:说明数组中的元素类型是int类型 []:说明这是一个数组 3:数组长度,其实就是数组中的元素个数

# 数组元素访问

数组变量访问方式

格式:数组名

数组内部保存的数据的访问方式

格式:数组名[索引]

索引是什么?

image-20230104012645554

image-20230104012742635

从0开始的编号就叫做索引

索引是数组中数据的编号方式

作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名

特征1:索引从0开始

特征2:索引是连续的

特征3:索引逐一增加,每次加1

# 如何获取数组的长度

通过.length来获取

arr.length
1

# 如何遍历数组

方法一:可以通过索引号去获取数组中的内容

方法二:通过for循环去遍历数组

一维数组案例:

题目1:判断数组中的偶数和奇数的个数

输入实例1:

1 2 4 8 10 3 4 3 4
1

输出示例1:

6 3
1

题目2:判断一个数组中的最大值

输入实例1:

1 3 6 7 2
1

输出示例1:

7
1

题目3:数组去重:键盘录入一个数组,判断数组中有没有相同的数据,如果有相同的数据,去掉,然后把更新后的数据打印出来

输入实例1:

1 3 5 7 2 1 9
1

输出示例1:

3 5 7 2 1 9
1

题目4:计算数组元素的平均值

描述: 编写一个方法 calculateAverage,接受一个整数数组作为输入,并返回数组元素的平均值。

输入: 一个整数数组。

输出: 数组元素的平均值。

示例:

输入:5 10 15 20
输出:12.5
1
2

题目5:反转数组

描述: 编写一个方法 reverseArray,接受一个整数数组作为输入,并返回一个新的数组,其中元素顺序与原数组相反。

输入: 一个整数数组。

输出: 倒序排列的新数组。

示例:

输入:1 2 3 4 5
输出:5 4 3 2 1
1
2

题目6:合并两个数组

描述: 编写一个方法 mergeArrays,接受两个整数数组作为输入,并返回一个包含两个输入数组所有元素的新数组。

输入: 两个整数数组。

输出: 合并后的新数组。

示例:

输入:[1, 2, 3], [4, 5, 6]  
输出:[1, 2, 3, 4, 5, 6] 
1
2

题目7:查找数组中的特定元素

描述: 编写一个方法 findTargetElement,接受一个整数数组和一个目标整数作为输入,并返回目标整数在数组中的索引,如果不存在则返回-1。

输入: 一个整数数组和一个目标整数。

输出: 目标整数在数组中的索引或-1。

示例:

输入:[2, 4, 6, 8, 10] 6
输出:2
1
2

# 二维数组的使用

一维数组里面的元素还是一个一维数组,就叫做二维数组

image-20230104174420037

# 二维数组的声明和初始化

//静态初始化
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
//动态初始化1
int[][] arr2 = new int[3][2];
//动态初始化2
int[][] arr2 = new int[3][];
1 2 10
4 5 6
7 8 9
1
2
3
4
5
6
7
8
9

# 二维数组的长度和遍历

获取数组的长度:

int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
System.out.println(arr1.length);
System.out.println(arr1[0].length);
System.out.println(arr1[1].length);
System.out.println(arr1[2].length);
1
2
3
4
5

遍历二维数组:

for(int i = 0 ;i<arr1.length;i++){
	for(int j = 0 ;j<arr1[i].length;j++){
		System.out.print(arr1[i][j]+" ");
	}
	System.out.println();
}
1
2
3
4
5
6

题目1:给定一个5x5的二维数组,找出其中的最大值

1 2 3 2 1
4 5 6 3 4
2 3 4 9 10
1 1 2 3 4
2 3 4 5 5
1
2
3
4
5
最近更新: 5/20/2025, 2:44:56 PM
失败才是人生的主旋律   |