难点儿的已经过去啦,现在又开始基础了哈~
之前讲变量的时候,变量是一个个的呀~,那我要搞一串变量该啷个办呢?Java 给我们出了个好东西叫数组 (▽)
数组呢,就是将变量一组一组的存起来,这个也是需要先声明然后初始化的。但是这个不属于八种基本类型哈,属于引用类型(Java 基础 5)。
数组定义
数组定义有四种方式:
1. 先声明,再初始化
声明:类型[] 名称;
初始化:名称 = new 类型[]{元素1, 元素2, 元素…, 元素n};
2. 声明初始化一起
声明&初始化:类型[] 名称 = {元素1, 元素2, 元素…, 元素n};
3. 一起的另一种语法
声明&初始化:类型[] 名称= new 类型[]{元素1, 元素2, 元素…, 元素n};
4. 只给数组长度不给数值
声明:类型[] 名称 = new 类型[数字];
5. 举个栗子
String[] today = {"hello","world","from","ahan"};
数组下标
下标,可以说是数组中元素的编号。而编号在大多数编程语言中,一般都是从 0 开始,所以咱们数组的下标也是从 0 开始。比如上面的 today,第 0 个元素就是 “hello”。
那怎么来使用它呢?
// 名称[下标]
System.out.println(today[0]);
这样就可以啦。输出的结果:。刚好就是上一段说的 hello 哦~
以此类推,我们要拿到 from,就可以用 today[2] 了~
说到这里,上面第 4 点,【类型 名称 = new 类型 [长度]】里的长度,不是说的下标哦~ 比如我 today 有四个元素,所以它的长度为 4,但是它最大的下标是 3 哦!
数组常用的几个方法
1. 获取长度(length)
众所周知,长度的英文单词是 length(不知道也可以啦,现在知道了哈哈哈)。那么获取数组的长度:
System.out.println(today.length);
对, 名称. length 就是计算获取方法了~
2. 打印输出
直接打印数组
System.out.println(today);
会发现一些奇怪的东西:诶?和我们想要的不太一样……emm,因为数组是一个引用类型,是对象,所以他这里输出的是对象的形式。对象是什么不重要哈哈哈,目前来说没讲到的对象的话,就把它当做一个普通名词听吧… 那这里稍微解释一下输出的这个东西:
[Ljava.lang.String;@7b1d7fff
[ 一维数组
[[ 二维数组
L 对象类型
java.lang.String;对象的标准类名
7b1d7fff 内部的hashcode
所以正题来了,怎么打印数组内容呢?
a. 循环打印
for (int i = 0; i < today.length; i++) {
System.out.println(today[i]);
}
emm,打印输出的东西:b. Arrays 打印
import java.util.Arrays;
...
System.out.println(Arrays.toString(today));
这个打印的就舒服一点:二维数组
1. 定义
声明:类型[][] 名称;
2. 元素
二维数组的意思就是在一维数组里面存入另一个数组,就是
int[][] tomorrow = {{1,2,3},{4,5,6}};
类型[][] 名称 = {数组1, 数组2, 数组…,数组n}
像这样,有没有很酷呢?
但是由于每个二维数组中有多个一维数组,而每个数组都是一个对象,所以对于二维数组,我们又不能用 Arrays 来进行打印操作了,我们只能使用双重循环来进行打印输出这个二维数组。
// 以tomorrow的长度为终止条件
for (int i = 0; i < tomorrow.length; i++) { // 以第i个数组的长度为终止条件
for (int j = 0; j < tomorrow[i].length; j++) { // 输出每个值
System.out.print(tomorrow[i][j]);
} // 换行
System.out.println();
}
多维数组
在一维数组里放一维数组,就变成二维数组了,在二维数组放二维数组就是三维数组了 || ヽ ( ̄▽ ̄) ノミ |Ю
多维数组大家都知道咋办了吧ε=(´ο`*)))
int[][][] three = {{{1,2,3},{4,5,6}},{{7,8,9},{0,1,2}}};
打印也是和二维数组一样:
for (int i = 0; i < three.length; i++) { for (int j = 0; j < three[i].length; j++) { for (int j2 = 0; j2 < three[i][j].length; j2++) {
System.out.print(three[i][j][j2]);
}
System.out.println();
}
}
以上,阿里嘎多,20190411 from ahanwhite。