目录
一、数组(array)【重点】
- 基本数据类型: 四类八种 可以点下方链接看我之前的博客
- 引用数据类型: 数组,类,接口
1.1 数组介绍
数组是什么?
- 数据组合,相当于是容器,存放多个数据的
为什么需要数组?
- 变量只能存储一个数据,不能储存多个相同类型的数据
- 例如: 存储全班人的成绩,存储每个人的多个手机号
- 所以需要数组,一次性存多个相同类型的数据
数组的特性
- 数组一旦创建,长度固定(容量,尺寸)
- 数组只能存储同一种类型
- 数组对象没有方法,只有一个属性length可以获得长度
1.2 数组的语法
数组的声明
- 数据类型
[]
数组名;- int[] arr; 声明一个整型数组,数组名arr
- double[] arr2;
- String[] arr3;
数组的创建
- 数组名 = new 数据类型[长度]
- 指定长度创建数组,默认值是空的
- 数组名 = new 数据类型[]{数据1,数据2,…}
- 指定数据,但是不知道长度
1.3 创建数组的内存图
- 方法执行进栈,执行完弹栈消失
- 凡是new出来的对象,都会在堆中
- 在堆中要开辟连续空间,根据数组长度划分
- 产生地址值
- 根据长度空间,给位置设置下标(索引),从0开始
- 数组中出现默认值
- 整型默认值是0
- 浮点型是0.0
- boolean默认值是false
- char默认值是 ’ ’
- 引用类型默认值都是 null
- 最后将地址值赋值给变量(引用)
1.4 取值赋值内存图
练习
需求: 创建3个数组
整数数组存储3个人的年龄
字符串数组存储3个人姓名
小数数组存储3个人成绩
分别创建,存值,取值
参考
public class Demo3 {
public static void main(String[] args) {
int[] ageArr = new int[3];
ageArr[0] = 18;
ageArr[1] = 19;
ageArr[2] = 20;
String[] nameArr = new String[3];
nameArr[0] = "李白";
nameArr[1] = "钟馗";
nameArr[2] = "亚瑟";
double[] scoreArr = new double[3];
scoreArr[0] = 4.5;
scoreArr[1] = 3.5;
scoreArr[2] = 2.5;
System.out.println("姓名:"+nameArr[0]+",年龄:"+ageArr[0]+",操作:"+scoreArr[0]+"分" );
System.out.println("姓名:"+nameArr[1]+",年龄:"+ageArr[1]+",操作:"+scoreArr[1]+"分" );
System.out.println("姓名:"+nameArr[2]+",年龄:"+ageArr[2]+",操作:"+scoreArr[2]+"分" );
}
}
二、数组属性
数组有一个属性,length,可以数组的长度(容量)
double[] arr4 = {1.1, 2.2, 3.3, 3.3, 3.3, 3.3, 3.3, 3.3, 3.3};
int length = arr4.length;
System.out.println("arr4数组的长度:" + length );
三、遍历【重点】
遍历: 将数组中的元素挨个(一个一个)的取出
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
// 遍历 输出
for (int i = 0;i < arr.length;i++) {
System.out.println(arr[i]);
}
}
四、练习
1.设计整型数组,要求计算出数组中所有数字的和
// 1设计整型数组,要求计算出数组中所有数字的和
public static void printSum() {
int[] arr = {11, 22, 33, 44, 55, 66};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.println("sum = " + sum);
}
2.设计整型数组,要求计算出数组中所有数字的平均数
// 2设计整型数组,要求计算出数组中所有数字的平均数
public static void printAvg(){
int[] arr = {11, 22, 33, 44, 55, 66};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
double avg = sum * 1.0 / arr.length;
System.out.println("avg = " + avg);
}
3.设计整型数组,输出数组中的最大值
public static int getMax(){
int[] arr = {1,211,3,41,5,787};
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
五、二维数组
二维数组,就是元素是一维数组的数组,即数组中有数组的的数组
public class Demo6 {
public static void main(String[] args) {
/**
* 二维数组
* 数据类型[][] 数组名 = new 数据类型[长度1][长度2];
* 长度1: 二维数组长度
* 长度2: 其中每个一维数组的长度
*/
int[][] arr = new int[3][4];
// 创建了整型二维数组,总长是2,即其中有个2个一维数组
// 其中每个一维数组长度是3
System.out.println(arr );// 二维数组地址值
System.out.println(arr[0] );// 其中第一个一维数组地址值
System.out.println(arr[0][0] );// 取出第一个一维数组的第一个值
System.out.println("--------" );
// 外层循环遍历二维数组
for (int i = 0; i < arr.length; i++) {
// 内层循环遍历一维数组
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println( );
}
System.out.println("-------------------" );
int[][] arr2 = {
{1,2,3},
{4,5,6,7},
{8,9,10,11,12}
};
for (int i = 0; i < arr2.length; i++) {
// 内层循环遍历一维数组
for (int j = 0; j < arr2[i].length; j++) {
System.out.print(arr2[i][j]+" ");
}
System.out.println( );
}
}
}
内存图
最后
如果感觉有收获的话,点个赞 👍🏻 吧。
❤️❤️❤️本人菜鸟修行期,如有错误,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍