目录
- 一维数组
- 二维数组
- 数组最大值最小值
一维数组
所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。数组是用于储存多个相同类型数据的集合。-- 来自百度百科
简单来说,数组就是相同数据类型的元素按一定顺序排列的集合。可以把它看成一个大的盒子,里面按顺序存放了多个数据类型相同的数据。
数组中的元素都可以通过下标来访问,下标从 0 开始,到数组长度 -1 结束。例如,可以通过 ages[0] 获取数组中的第一个元素 18 ,ages[3] 就可以取到第四个元素 10。
注意:
使用数组前要声明数组。
语法:
数据类型[ ] 数组名; //或者: 数据类型 数组名[ ];数组名为任意合法的变量名,如:
int ages[]; //存放年龄的数组,类型为整型char symbol[]; //存放符号的数组,类型为字符型
String [] name; //存放名称的数组,类型为字符串型
声明数组后,需要为数组分配空间,也就是定义多大的数组。
语法:
数组名 = new 数据类型 [ 数组长度 ];数组长度就是数组最多可存放元素的个数。可以在数组声明的时候初始化数组,或者在声明时就为它分配好空间,这样就不用再为数组分配空间。
语法:
int [] ages = {12,18,9,33,45,60}; //声明并初始化了一个整型数组,它有6个元素char [] symbol = new char[10] //声明并分配了一个长度为10的char型数组
分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的。 如:
ages[0]=12;Java 中可以将一个数组赋值给另一个数组,如:
int [] a1 = {1,2,3};int [] a2;
a2 = a1;
这里只是复制了一个引用,即 a2 和 a1 是相同数组的不同名称。
数组遍历:
int [] ages = {12, 18, 9, 33, 45, 60};for(int i = 0; i < ages.length; i++){ //ages.length是获取数组的长度
System.out.println("数组中第"+(i+1)+"个元素是 "+ages[i]); //数组下标是从零开始,一定要注意
}
注意:
- 数组下标从 0 开始。所以数组的下标范围是 0 至 数组长度 -1。
- 数组不能越界访问,否则会报错。
- for 语句在数组内可以使用特殊简化版本,在遍历数组、集合时,foreach - 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思。
语法:
for(元素类型 元素变量:遍历对象){执行的代码
}
二维数组
二维数组可以看成是一间有座位的教室,座位一般用第几排的第几个进行定位,每一个座位都有一个行和一个列的属性,一排的座位相当于一个一维数组,所以可以将二维数组简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组。
二维数组也需要声明和分配空间。
语法:
数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];//或者
数据类型 [][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];
//也可以
数据类型 [][] 数组名 = {
{第一行值1,第一行值2,...}
{第二行值1,第二行值2,...}
...
}
//二维数组的赋值和访问,跟一维数组类似,可以通过下标来逐个赋值和访问,注意索引从 0 开始
数组名[行的索引][列的索引] = 值;
数组最大值最小值
现给出一串数据(313, 89, 123, 323, 313, 15, 90, 56, 39)求出最大值和最小值并输出。
import java.util.Arrays;public class MaxAndMin {
public static void main(String[] args) {
int[] data = {313, 89, 123, 323, 313, 15, 90, 56, 39};
// 方法1
int max = data[0];
int min = data[0];
for (int i = 0; i < data.length; i++) {
if (data[i] > max) {
max = data[i];
}
if (data[i] < min) {
min = data[i];
}
}
System.out.println(min);
System.out.println(max);
//方法二
//Arrays.sort(data);
//System.out.println(data[0]);
//System.out.println(data[data.length - 1]);
//方法三
//System.out.println(Arrays.stream(data).min().getAsInt());
//System.out.println(Arrays.stream(data).max().getAsInt());
}
}