Java基础语法03-数组-一维-二维
数组的特点:
1、数组的长度一旦确定就不能修改
2、创建数组时会在堆内存中开辟一整块连续的空间。
//推荐
元素的数据类型[] 一维数组的名称;
//不推荐
元素的数据类型 一维数组名[];
2)数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
或
数据类型[] 数组名;
数组名 = new 数据类型[]{元素1,元素2,元素3...};
数组数据类型[] 数组名字 = new 数组数据类型[长度];
或
数组数据类型[] 数组名字;
数组名字 = new 数组数据类型[长度];
-
-
[] : 表示数组。
-
数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
-
new:关键字,创建数组使用的关键字。因为数组本身是引用数据类型,所以要用new创建数组对象。//new相当于运算符,存放在堆内存中
-
[长度]:数组的长度,表示数组容器中可以存储多少个元素。
-
注意:数组有定长特性,长度一旦指定,不可更改。
-
数组名[索引]=数值,为数组中的元素赋值
-
变量=数组名[索引],获取出数组中的元素
for(int i=0; i<arr.length; i++){
System.out.println(arr[i]);
}
for(int x:arr){ //for增强版,专门用于数组的访问(类型为要访问的数组类型)
System.out.print(x);
}
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。
int[] arr = new int[3];
(1)先假设第一个元素最大/最小
(2)然后用max/min与后面的元素一一比较
(1)先找最大值
①假设第一个元素最大
(2)遍历数组,看哪些元素和最大值是一样的
1)依次比较相邻的两个数,将小数放到前面,大数放到后面。
2)需要比较数组.length-1轮 //设i=1,i<arr.length
for(int i = 1;i < arr.length;i++){
boolean flag = true;
for(int j = 0;j < arr.length - i - 1;j++){
if(arr[j] > arr[j + 1]{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = false;
}
}
if(flag){
break;
}
}
-
-
二维数组的标记:[][]
//推荐
元素的数据类型[][] 二维数组的名称;
//不推荐
元素的数据类型 二维数组名[][];
//不推荐
元素的数据类型[] 二维数组名[];
元素的数据类型[][] 二维数组名 = new 元素的数据类型[][]{
{元素1,元素2,元素3 。。。},
{第二行的值列表},
{第n行的值列表}
};
元素的数据类型[][] 二维数组名;
二维数组名 = new 元素的数据类型[][]{
{元素1,元素2,元素3 。。。},
{第二行的值列表},
{第n行的值列表}
};
//以下格式要求声明与静态初始化必须一起完成
元素的数据类型[][] 二维数组的名称 = {
{元素1,元素2,元素3 。。。},
{第二行的值列表},
{第n行的值列表}
};
(1)确定行数和列数
元素的数据类型[][] 二维数组名 = new 元素的数据类型[m][n];
m:表示这个二维数组有多少个一维数组。或者说一共二维表有几行
n:表示每一个一维数组的元素有多少个。或者说每一行共有一个单元格
//此时创建完数组,行数、列数确定,而且元素也都有默认值
(2)再为元素赋新值
二维数组名[行下标][列下标] = 值;
(1)先确定总行数
元素的数据类型[][] 二维数组名 = new 元素的数据类型[总行数][];
//此时只是确定了总行数,每一行里面现在是null
(2)再确定每一行的列数
二维数组名[行下标] = new 元素的数据类型[该行的总列数];
//此时已经new完的行的元素就有默认值了,没有new的行还是null
(3)再为元素赋值
二维数组名[行下标][列下标] = 值;
二维数组名.length
二维数组名[行下标].length
二维数组名[行下标][列下标]
for(int i=0; i<二维数组名.length; i++){
for(int j=0; j<二维数组名[i].length; j++){
System.out.print(二维数组名[i][j]);
}
System.out.println();
}