Java基础之数组
【摘要】 1 数组数组(array [əˈreɪ] )是一种用来存储 多个相同类型 数据的存储模型。数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素可以是任意类型(包括基本类型和引用类型),但同一个数组里只能存放类型相同的元素。创建数组大致包括如下步骤:声明一个数组类型的引用变量,简称为数组变量;用new语句构造数组的实例。new语句为数组分配内存,...
1 数组
-
数组(array [əˈreɪ] )是一种用来存储 多个相同类型 数据的存储模型。数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素可以是任意类型(包括基本类型和引用类型),但同一个数组里只能存放类型相同的元素。
-
创建数组大致包括如下步骤:
- 声明一个数组类型的引用变量,简称为数组变量;
- 用new语句构造数组的实例。new语句为数组分配内存,并且为数组中的每个元素赋予默认值;
- 初始化,即为数组的每个元素设置合适的初始值。
1.1 数组定义格式
- 格式1(常用):数据类型[] 变量名;
int[] arr; //定义了一个int类型的数组,数组名是arr
- 格式2:数据类型 变量名[];
int arr[]; //定义了一个int类型的变量,变量名是arr数组
1.2 数组初始化
1.2.1 动态初始化
- 初始化时只指定初始化长度,由系统为数组分配默认初始化值
- 默认值:
- int:默认值0
- float:默认值0.0
- boolean:默认值false
- char:默认值是空字符
- 引用数据类型:默认值 null
- 格式:
数据类型[] 变量名 = new 数据类型[数组长度];
- 范例:
//new:为数组申请内存空间 3:数组长度/数组中元素个数
int[] arr = new int[3];
System.out.print(arr[0]) //0 系统分配的默认初始化值
1.2.2 静态初始化
- 初始化指定数组元素,系统会根据元素个数,计算出数组的长度
- 格式:
数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,.....}
数据类型[] 变量名 = {数据1,数据2,数据3,....} //简化格式
- 范例:
int[] arr = new int[]{1,2,3};
System.out.println(arr[0]);
int[] arr1 = {1,2,3};
System.out.println(arr1[0]); //1
1.3 数组元素访问
- 数组变量访问方式
- 格式:变量名
- 数组内部保存数据访问方式
- 格式:数组名[索引] //0、1、2、3…
int[] arr1 = {1,2,3};
System.out.println(arr1); //[I@1b6d3586:内存空间地址值
System.out.println(arr1[0]); //1
System.out.println(arr1[1]); //2
System.out.println(arr1[2]); //3
1.4 内存分配
- 栈内存:存储局部变量(定义在方法中的变量,如:arr,使用完毕立刻消失)
- 堆内存:存储new出来的内容(实体、对象)(垃圾回收器空闲时回收)
1.5 遍历数组
- 获取数组元素个数,格式:
数组名.length
public class Demo {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]); // 1 2 3 4 5
}
}
}
1.6 获取数组最值
- 执行流程:
1、假设数组中的第一个元素为最大值
2、遍历数组,获取每一个元素,准备进行比较
3、如果比较的过程,出现了比max更大的,让max记录更大的值
4、循环结束后,打印最大值
public class Demo {
public static void main(String[] args) {
int[] arr = {2,6,7,8,1,3,5,4,9};
int max = arr[0];
for(int i=1;i<arr.length;i++) {
if(arr[i] > max) {
max = arr[i];
}
}
System.out.println(max); //循环结束后打印
}
}
2 二维数组
二维数组本质上是以数组作为数组元素的数组,即数组的数组
。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。
2.1 二维数组格式
- 格式一 :数据类型[ ][ ] 变量名;
int[][] arr;
- 格式二 :数据类型 变量名[][];
int arr[][];
- 格式三 :数据类型[] 变量名[];
int[] arr[];
2.2 动态初始化
- 格式:数据类型[ ][ ] 变量名 = new 数据类型[m][n];
- m:行
- n:列(每行可以存放多少数据)
- 范例:
public class Demo {
public static void main(String[] args) {
int[][] arr = new int[2][3];
for(int[] row : arr) {
for(int data : row) {
System.out.printf("%d\t",data); // 0 0 0
} // 0 0 0
System.out.println();
}
}
}
2.3 静态初始化
- 格式1:格式: 数据类型[ ][ ] 变量名 = new 数据类型[ ][ ] {{元素1,元素2…},{元素1,元素2…}};
int[][] arr = new int[][]{{11,22},{33,44}};
- 格式2(简化格式):数据类型[][] 变量名 ={{元素1,元素2},{元素1,元素2…}};
int[][] arr = {{11,22},{33,44}};
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)