数组:
现在需要统计某公司员工,例如计算平均工资,找到最高工资等;
假设该公司有80人,用之前所学的方法,我们需要定义80变量来分别记住每个员工的工资,这样会显得很麻烦。为了解决这一文体,Java提供了数组给我们使用;
那什么是数组呢?有什么用呢?通过上面的问题我们知道:
1.数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
2.数组既可以存储基本数据类型,也可以存储引用数据类型。
语句定义格式:
1.数据类型[ ] 数组名:int[ ] arr;(推荐第一种方式)
2.数据类型 数组名[ ]:int arr[ ];定义一个存放int类型数据的数组;
原因:因为第一种方式一眼就能看出来是一个数组,从长久看来日后的使用趋势是第一种,第二种会逐渐被淘汰;
数组初始化:
1.动态初始化:
数据类型[] 数组名=new存放数据的类型[];
int[] arr=new int[3];
2.静态初始化:初始化定义每个元素的初值,由系统决定数组长度;
public class Cherris {
public static void main(String[] args) {
//第一种格式定义
// int[] arr;
//第二种格式定义
// int arr1[];
//没有初始化能直接赋值
// System.out.println(arr);
//动态初始化一个数组:定义一个可以存放3个int类型数据的数组。
/**
* 左半部分:
* int: 表示数组中存放元素的数据类型是int类型
* []: 表示是一个一维数组
* arr: 数组名字,符合标识符规则
*
* 右半部分:
* new: 就是为数组在堆内存中开辟一个内存空间
* int: 表示数组中存放元素的数据类型是int类型
* []: 表示是一个数组
* 3: 表示数组中最多可以存放元素的个数(数组本身的长度)
* ;: 表示一个语句的结尾
*
*/
int[] arr = new int[3];
//[I@4554617c arr数组在堆内存中的地址值,地址是一个十六进制的形式。
System.out.println(arr);
//我们仅仅获取的是一个地址值是没有任何意义的,
//我们更期望获取的是数组中的元素
//如何获取数组中的元素呢?
//java在数组中提供了一个类似于下标的说法,我们可以通过下标获取到该下标位置上的元素
//这个下标有一个专业的叫法:索引(index)
//从左往右编号,从0开始
// 举例:现在数组的长度是3,索引从0开始,最大可以到2,也就是长度-1
// 获取数组元素的格式:数组名[想要获取元素的对应索引]
System.out.println(arr[0]); //获取第一个元素 0
System.out.println(arr[1]); //获取第二个元素 0
System.out.println(arr[2]); //获取第三个元素 0
}
}
2.如何给数组中的元素进行赋值:通过数组中的索引赋值
public class Cherris {
public static void main(String[] args) {
//定义一个数组并动态初始化
//定义一个存放int元素类型的数组,最多可以存放3个。
int[] arr = new int[3];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println("============================");
//手动赋值
//给数组中第一个元素进行赋值
arr[0] = 10;
//给数组中第二个元素进行赋值
arr[1] = 20;
//给数组中第三个元素进行赋值
arr[2] = 30;
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
定义两个数组,并赋值输出:
public class Cherris {
public static void main(String[] args) {
//定义第一个数组
int[] arr1 = new int[3];
arr1[0] = 11;
arr1[1] = 22;