一、数组
1. 假设某公司有100个员工,需要统计某公司员工的工资情况,首先需要声明100个变量来分别记每个员工的工资,那么如果按照之前的做法,可能定义的结构如下所示:
int a1,a2,a3,......a100;
- 1.
要求你输出这100个员工的工资,意味着你要写System.out.println()语句100次。这样的话就显得很麻烦,所以我们需要用数组解决。
2. 数组指的是一组数据的集合,数组中每个数据叫做元素。在数组可以存放任意类型的数据,但是同一个数组存放的元素类型需要一致。
3. 数组的定义如下所示:
int[] a=new int[100];
- 1.
上面这个数组的定义相当于在内存定义了100个int类型的变量,第1个变量的名称是a[0],第2个变量的名称是a[1],第3个变量名称是a[2],直到第100个变量的名称是a[99]。这些变量的初始值默认为0。
int[] a;//定义一个int[]类型的变量a
a=new int[100];//创建长度为100的数组
- 1.
- 2.
上面这个数组的定义一个int[]类型的变量a,变量a会占用一块内存单元格,它还没有分配初始的值。
如下图所示:
a=new int[]创建一个数组,把数组的地址赋值给变量x,内存状态就发生了变化。
如下所示:
4. 通过一个案例看看如何定义数组和访问数组的元素、长度:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a;//声明一个int[]类型变量a
a=new int[3];//创建数组为3的长度
System.out.println("a[0]="+a[0]);//访问数组的第1个元素
System.out.println("a[1]="+a[1]);//访问数组的第2个元素
System.out.println("a[2]="+a[2]);//访问数组的第3个元素
System.out.println("数组的长度为:"+a.length);//数组的长度
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
输出的结果是:
a[0]=0
a[1]=0
a[2]=0
数组的长度为:3
- 1.
- 2.
- 3.
- 4.
我们分析一下上面的代码,首先是声明一个int[]类型变量a,然后创建数组长度为3,它是如何访问数组的元素的呢?通过a[0]访问数组的第1个元素,因为数组下标由0开始,最大下标是数组元素个数-1。a.length属性是访问数组的长度。
二、数组的静态初始化
1.什么是数组的静态初始化
定义数组时,为数组的每个元素赋值就叫做数组的静态初始化。
2.数组的静态初始化两种方式
类型[] 数组名 = new 类型[]{值1, 值2, ……};
类型[] 数组名 = {值1, 值2, ……};
- 1.
- 2.
3.数组的静态初始化如何定义和访问数组的值
如下所示:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={1,2,3};//静态初始化
System.out.println("a[0]="+a[0]);//访问数组的第1个元素
System.out.println("a[1]="+a[1]);//访问数组的第2个元素
System.out.println("a[2]="+a[2]);//访问数组的第3个元素
System.out.println("数组的长度为:"+a.length);//数组的长度
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
输出的结果为:
a[0]=1
a[1]=2
a[2]=3
数组的长度为:3
- 1.
- 2.
- 3.
- 4.
使用静态初始化数组给每个元素进行赋值,分别是1、2、3。
三、数组的动态初始化
1.什么是数组的动态初始化
定义数组由系统自动给元素赋初始值,我们就叫做数组的动态初始化。
2.动态初始化的方式
类型[] 数组名 = new 类型[长度];
- 1.
3.动态初始化只需要指定数组的长度,系统自动赋初始值。分配初始值的规则:
boolean数据类型它的系统默认值为false;
byte数据类型它的系统默认值为0;
char数据类型它的系统默认值为’/u0000’;
short数据类型它的系统默认值为0;
int数据类型它的系统默认值为0;
long数据类型它的系统默认值为0L;
float数据类型它的系统默认值为0.0f;
double数据类型它的系统默认值为0.0;
4.动态初始化如何定义和访问数组的元素
例如:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[4];//动态初始化
System.out.println("a[0]="+a[0]);//访问数组的第1个元素
System.out.println("a[1]="+a[1]);//访问数组的第2个元素
System.out.println("a[2]="+a[2]);//访问数组的第3个元素
System.out.println("a[3]="+a[3]);//访问数组的第3个元素
System.out.println("数组的长度为:"+a.length);//数组的长度
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
输出的结果:
a[0]=0
a[1]=0
a[2]=0
a[3]=0
数组的长度为:4
- 1.
- 2.
- 3.
- 4.
- 5.
四、总结
本文介绍了数组定义、数组的静态初始化、数组的动态初始化。详细介绍了数组的内容,数组的定义和访问数组的元素、长度通过图片和案例结合。静态初始化是定义数组,为每个元素赋值。动态初始化是由于系统会自动给它们赋值。静态初始化和动态初始化详细的讲解这两个用法,通过图片和案例结合来理解这用法。希望大家通过本文的学习,对你有所帮助!