文章目录
0 前言
数组是一种常用的数据结构,它可以存储多个相同类型的数据,如整数、字符、浮点数等。数组的优点是可以通过索引快速访问任意位置的元素,而且占用的内存空间是连续的。数组的缺点是长度固定,不能动态扩容,而且插入和删除元素需要移动后面的元素。在本文中,我们将介绍Java中数组的声明、创建、初始化、遍历、操作和应用,以及一些常见的数组问题和解决方法。
1 数组的定义与基本要素
1.1 为什么需要数组
当某个功能模块中变量的初始化过多的情况下,需要有一个容器(有序序列),能够容纳多个变量。
1.2 数组的定义
1)数组是一个变量,存储相同数据类型的一组数据。
2)数组在内存空间中划出一串连续的空间。
1.3 数组的基本元素
标识符:数组的名称,用于区分不同的数组
数组元素:向数组中存放的数据
元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问
元素类型:数组元素的数据类型
注:数组长度固定不变,避免数组越界。
1.4 数组的特点
数组中的所有元素必须属于相同的数据类型。
2 数组的语法结构
2.1 数组的创建
//创建数组的两种方式
//第一种方式,静态初始化
int[] array = new int[]{2,4,8,5};
//第二种方式,动态初始化
int array[] = new int[4];
array[0] = 2;
array[1] = 4;
array[2] = 8;
array[3] = 5;
2.2 增强for循环遍历数组
int[] array = new int[]{2,4,8,5};
for(int i : array){
System.out.print(i+",");
}
3 Arrays工具类的使用
3.1 .sort()
定义:对指定数组按升序进行排列
使用:
int[] array = new int[]{2,4,8,5};
Arrays.sort(array);
for(int i = 0;i<array.length;i++){
System.out.print(array[i]+","); //输出结果为2,4,5,8
}
3.2 .toString()
定义:返回指定数组内容的字符串表示形式。
使用:
int[] array = new int[]{2,4,8,5};
System.out.println(Arrays.toString(array));//输出结果为[2,4,8,5]
4 数组的应用
4.1 求最大值
/*核心思路:设置一个变量max,初始值为数组中的第一个元素,
*将它依次与数组中的各个元素进行比较,将更大的值赋给max,
*遍历结束后,max的值即为最大值。
*/
int[] array = new int[]{2,4,8,5};
int max = array[0];
for(int i = 1;i<array.length;i++){
if(array[i]>max){
max = array[i];
}
}
System.out.println("最大值为"+max);
4.2 冒泡排序
/*核心思路:将数组中的第一个数依次与下一个数进行比较,如果前一个数比
*后一个数大,则将两个值交换,每一轮确定一个最大的位置放到最后,如此继续,
*直至全部排序完成
*/
int[] array = new int[]{2,4,8,5};
int t;
for(int i = 0;i<array.length-1;i++){ //比较的轮数,长度-1
for(int j = 0;j<array.length-1-i;j++){ //每轮比较的次数,长度-1-i
if(array[j]>array[j+1]){
t = array[j];
array[j] = array[j+1];
array[j+1] = t;
}
}
}
System.out.println(Arrays.toString(array));
5 二维数组
二维数组与一维数组的语法结构相同,可以理解为二维数组就是数组元素是一维数组的一维数组。
int[][] arrays = new int[][]{ { 90, 85, 92, 78, 54 }, { 76, 63,80 }, { 87 }};