1.数组的理解:数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
2.数组相关的概念:
①数组名
②元素
③角标、下标、索引
④数组的长度:元素的个数
3.数组的特点:
数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
数组的分类:
① 照维数:一维数组、二维数组、。。。
② 照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
一维数组的使用
① 一维数组的声明和初始化
② 如何调用数组的指定位置的元素
③ 如何获取数组的长度
④ 如何遍历数组
⑤ 数组元素的默认初始化值 :
按照数据类型的分类
数组元素是整型:0
数组元素是浮点型:0.0
数组元素是char型:0或’\u0000’,而非’0’
数组元素是boolean型:false
数组元素是引用数据类型:null
public class ArrayTest {
public static void main(String[] args) {
//数组元素的默认初始化值
//1.数组元素是整型
int[] arr = new int[3];
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);//输出三个0
}
System.out.println("**********");
short[] arr1 = new short[3];
for(int i = 0;i < arr1.length;i++){
System.out.println(arr1[i]);//short属于基本数据类型所以遍历输出三个0
}
System.out.println("**********");
//2.数组元素是浮点型
float[] arr2 = new float[3];
for(int i = 0;i < arr2.length;i++){
System.out.println(arr2[i]);//输出三个0.0
}
System.out.println("**********");
//3.数组元素是char型:
char[] arr3 = new char[3];
for(int i = 0;i < arr3.length;i++){
System.out.println(arr3[i]);//遍历输出了三个空格
}
//4.数组元素是boolean型
boolean[] arr4 = new boolean[5];
System.out.println(arr4[0]);//输出false
String name[]=new String[5];
System.out.println(name[0]);//String属于引用数据类型,所以输出null。
if(name[0]==null) {
System.out.println("今天是2020年8月3日");
}
}
}
⑥ 数组的内存解析 :
数据结构:
1.数据与数据之间的逻辑关系:集合、一对一、一对多、多对多
2.数据的存储结构:
线性表:顺序表(比如:数组)、链表、栈、队列
①数组 (Array)
②栈 (Stack)
④链表 (Linked List)
⑤树 (Tree)
⑥堆 (Heap)
⑦图 (Graph)
⑧散列表 (Hash)
当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。
一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。
定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
数组元素的引用方式:数组名[数组元素下标]
数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[3*i];
数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 —>n-1;
如int a[]=new int[3]; 可引用的数组元素为a[0]、a[1]、a[2]
每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长 度(元素个数)
数组一旦初始化,其长度是不可变的
1.一维数组的声明与初始化
一维数组的声明方式: type var[] 或 type[] var;
例如:
int a[];
double b[];
String[] c; //引用类型变量数组
正确的方式:
int num;//声明
num = 10;//初始化
int id = 1001;//声明 + 初始化
int[] str;//声明
//1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行
str = new int[]{
1,2,3,4};
//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];
int[] arr4 = {
1,2,3,4,5};//类型推断
错误的方式:
// int[] arr1 = new int[];
// int[5] arr2 = new int[5];
// int[] arr3 = new int[3]{
1,2,3};
Java语言中声明数组时不能指定其长度(数组中元素的数), 例如: int a[5]; //非法
总结:数组一旦初始化完成,其长度就确定了。
2.一维数组元素的引用:通过角标的方式调用。
//数组的角标(或索引从0开始的,到数组的长度-1结束。
names[0] = “王一”;
names[1] = “王二”;
names[2] = “张三”;
names[3] = “李四”;
names[4] = “王五”;//charAt(0)
3.数组的属性:length
System.out.println(names.length);//5
System.out.println(str.length);//4
说明:
数组一旦初始化,其长度就是确定的。arr.length
数组长度一旦确定,就不可修改。
4.一维数组的遍历
for(int i = 0;i < names.length;i++){
System.out.println(names[i]);
}
5.一维数组元素的默认初始化值
> 数组元素是整型:0
数组元素是浮点型:0.0
数组元素是char型:0或’\u0000’,而非’0’
数组元素是boolean型:false
数组元素是引用数据类型:null
int[] arr = new int[4];
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}
//输出 的默认值为0
对于基本数据类型而言,默认初始化值各有不同
对于引用数据类型而言,默认初始化值为null(注意与0不同!)
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,
类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。
如何理解二维数组?
数组属于引用数据类型
数组的元素也可以是引用数据类型
一个一维数组A的元素如果还是一个一维数组类型的,则,此数组A称为二维数组。
二维数组的声明与初始化
正确的方式:
int[] str = new int[]{
1,2,3};//一维数组
//静态初始化
int[][] str1 = new int[][]{
{
1,2,3},{
4,5},{
6,7,8}};
//动态初始化1
String[][] str2 = new String[3][2];
//动态初始化2
String[][] str3 = new String[3][];
//也是正确的写法:
int[] str4[] = new int[][]{
{
1,2,3},{
4,5,9,10},{
6,7,8}};
int[] str5[] = {
{
1,2,3},{
4,5},{
6,7,8}};//类型推断
错误的方式:
// String[][] str4 = new String[][4];
// String[4][3] str5 = new String[][];
// int[][] str6 = new int[4][3]{
{
1,2,3},{
4,5},{
6,7,8}};
//也是正确的写法:
int[] str4[] = new int[][]{
{
1,2,3},{
4,5,9,10},{
6,7,8}};
int[] str5[] = {
{
1,2,3},{
4,5},{
6,7,8}};
3.如何调用二维数组元素:
System.out.println(str1[0][1]);//2
System.out.println(str2[1][1]);//null
str3[1] = new String[4];
System.out.println(str3[1][0]);//null
System.out.println(str3[0]);//null
4.二维数组的属性:
System.out.println(str4.length);//3
System.out.println(str4[0].length);//3
System.out.println(str4[1].length);//4
5.遍历二维数组元素
for(int i = 0;i < str4.length;i++){
for(int j = 0;j < str4[i].length;j++){
System.out.print(str4[i][j] + " ");
}
System.out.println();
}
6.二维数组元素的默认初始化值
int[][] str = new int[4][3];
外层元素:str0],str[1]等
内层元素:str[0][0],str[1][2]等
数组元素的默认初始化值 :
针对于初始化方式一:比如:int[][] str = new int[4][3];
外层元素的初始化值为:地址值
内层元素的初始化值为:与一维数组初始化情况相同
针对于初始化方式二:比如:int[][] str = new int[4][];
外层元素的初始化值为:null
内层元素的初始化值为:不能调用,否则报错。
int[][] str = new int[4][3];
System.out.println(str[0]);//[I@15db9742 地址值
System.out.println(str[0][0]);//0
以上就是我看视频学习和自己总结的知识点,如有不足之处,请大家指出改正,感谢每天进步的自己!加油!