本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第25天,点击查看活动详情
目录
今天阿文介绍的内容:
- Java的数组
- 一维数组
Java数组
数组(Array),顾名思义就是一组数据。在Java中,数组也可以视为一种数据类型。它本身是一种引用类型。数组是有序数据的集合,数组中的每个元素必须是相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。
数组类型
int a; //基本数据类型
int[] b; //引用数据类型
1.一维数组的初步使用
使用12个月份的天数演示数组的使用方法:
public class Text1 {
public static void main(String[] args) {
//定义一个长度为12的一维数组
int[] month={31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//遍历数组
for (int i = 0; i < month.length; i++) {
//注意:数组下标是从0开始
System.out.println(i + "月" + "一共有" + month[i] + "天");
}
}
}
输出结果:
注意:
- 在Java中,下列写法是
错误的!
int month[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int [12]month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
写Java代码时,在定义数组时不能在方括号中写下数组的长度。
- 在Java数组中,提供了一个公有属性
length,表示该数组的长度,调用格式:
Array.length//数组长度
2.一维数组
在上述例子中创建数组的方法称为静态初始化,在声明的同时给出初始数据。
接下来介绍另一种创建数组的方法
2.1一维数组的声明与内存的分配
在Java中使用数组,需经过这两步骤:
- 声明数组
- 分配内存给该数组
语法格式
int[] array; //声明一维数组
array = new int[5]; //分配内存给数组
上面两个步骤也可以用较为简洁的方式,把两行缩写一行来编写
语法格式
int[] array = new int[5];
2.2数组中元素的表示方法
想要使用数组里的元素,可以利用索引来完成。Java的数组索引编号从0开始。以一个名为array长度为5的整形数组为例,array[0]表示为第一个元素,array[1]表示为第二个元素,依次类推
下图为array数组中元素的表示及排列方式:
2.3数组元素的赋值
数组在静态初始化时,需在声明时给出初始值,现在来介绍更加灵活的赋值方法
例子:
public class Text1 {
public static void main(String[] args) {
//创建了一个Random类型的对象rand
Random rand = new Random();
//创建一个数组a,大小为5
int[] a = new int[5];
//创建数组b,将数组a赋值给数组b
int[] b = a;
for (int i = 0; i < a.length; i++) {
//给数组a,第i+1个元素赋值
a[i] = rand.nextInt(100);
//输出数组a的第i+1个元素
System.out.print("a"+"["+i+"]"+"="+a[i]+"\t");
//输出数组b的第i+1个元素
System.out.println("b"+"["+i+"]"+"="+b[i]);
}
}
}
输出结果:
为什么输出b的元素可以输出,没有报错呢?
事实上,关键在于"int[] b = a"这行代码,这行代码的含义是将数组a的引用赋值给数组b。由于是引用数据类型,赋值之后a和b指向的数组对象是相同的,换句话说,相当于给数组a取了一个“别名”,这就是Java中广泛使用的概念————引用。
2.4数组的应用范例
数组的索引就好像宾馆的房间编号,想找到某个房间,就得先找到房间编号!所以可以求数组中的最大值和最下值。
例子:
public class Text1 {
public static void main(String[] args) {
//创建一个数组a,大小为5
int[] a = {30, 67, 56, 22, 89, 74, 34, 12, 65, 93};
//定义最大值max和最小值min
int max = a[0], min = a[0];
System.out.println("数组a包含的元素:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
if (a[i] > max) { //判断是否比最大值大
max = a[i]; //如果比最大值大,则赋值给max
} else if (a[i] < min) { //判断是否比最小值小
min = a[i]; //如果比最下值小,则赋值给min
}
}
System.out.println();
System.out.println("最大值为:" + max);
System.out.println("最下值为:" + min);
}
}
输出结果:
将变量min与max初值设成数组的第1个元素后,再逐一与数组中的各元素相比。比min小,就将该元素的值指定给min存放,使min的内容保持最小;同样,当该元素比max大时,就将该元素的值指定给max存放,使max的内容保持最大。for循环执行完成,也就表示数组中所有的元素都已经比较完毕,此时变量min与max的内容就是最小值与最大值。
总结
- Java中的数组是
引用类型,定义数组是不需要给出数组的长度 好了,今天阿文就介绍到这了... byebye