欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

L的java学习笔记——数组

程序员文章站 2024-03-04 12:34:47
...

一维数组

数组是可以存放多个同类型数据,比如一些学生的成绩等等。

  • 一维数组的声明
int[] arr=new int[5];

这句话左半部分在栈内存中定义了一个名为arr的变量,然后这个变量指向在堆内存创建的5个int类型数据。
注:数组在声明长度后不可改变数组长度
L的java学习笔记——数组

  • 初始化
//第一种方法(动态初始化)
int[] array1=new int[5];
arr[0]=1;
arr[1]=2;
...
//第二种方法(静态初始化)
int[] array2={1,2,3,4};
//第三种方法(静态初始化)
int[] array3=new int[]{1,2,3};
//下面是错误的声明方法
int[] array4;
array4={012}
  • 数组的常用操作
    用.length方法求数组长度
int[]arr=new int[] {1,2,3};
System.out.println(arr.length);

(目前常用的只有.length,以后还会补充)

二维数组

二维数组其实相当于一维数组里面嵌套着一个一维数组。

  • 二维数组声明及初始化
//方法一
int[][] array=new int[3][2]; //表示声明了一个3行2列的二维数组
arr[0][1]=2;
...

其内存分配如图(图中“乱码”是哈希码,相当于c\c++里的地址)
L的java学习笔记——数组

//方法二
int[][] array1=new int[4][];//声明时二维数组的第二维可以省略,但第一维不能省略
//方法三
int[][] array2=new int[][]{{2,3,4},{5,6}};//声明了一个不等长的二维数组
  • 常用操作
    .length操作
    有人就问一维数组求长度就是求它的个数嘛,那二维数组也是求其元素个数吗?
int[][] arr=new int [][] {{1,2,3},{2,4,6,4}};
System.out.println(arr.length);

输出结果:2

多试几个例子就可以发现此时.length获取的是二维数组的第一维(也就是行数)。
那么怎么获取每一行的个数呢?

int[][] arr=new int [][] {{1,2,3},{2,4,6,4}};
System.out.println(arr[0].length);
System.out.println(arr[1].length);

输出结果:
3
4

我们可以使用以下的格式来获取某一行的长度。

//arr为二维数组
int len=arr[N].length;//len所保存的就是arr数组里第N行的个数

数组默认值

我们可以直接用代码来得到这些。

//String类型
String[][] arr1=new String [2][2];
System.out.println(arr1[0][0]);
//int类型
int[][] arr2=new int [2][2];
System.out.println(arr2[0][0]);
//float类型
float[][] arr3=new float [2][2];
System.out.println(arr3[0][0]);
//char类型
char[][] arr4=new char [2][2];
System.out.println((int)arr4[0][0]);

输出结果:
null
0
0.0
0

因为String类型创建的是对象数组,它没初始化时对象为空(null)。因为空字符无法显示,所以将char类型强制转化为int类型更直观。

**以上为个人总结,如有错误之处,还请大佬指出。