Java一维数组详解

学习目标:

掌握一维数组的使用

学习内容:

1、一维数组的定义
数组(Array),是把具有 相同类型 的多个常量值 有序组织 起来的一种数据形式。这些按一定顺序排列的多个数据称为数组。而数组中的每一个常量值称之为数组元素(item),数组中使用索引/下标(index)来表示元素存放的位置,索引从0开始,步长是1,有点像Excel表格的行号。
数组在内存中是一段连续的内存空间
数组在内存中是一段连续的内存空间

2、一维数组的语法

数组元素类型[] 数组名;   如:int[] ages;
另一种方式:int ages[]; 不推荐

理解:

  1. 可以把int[]看成是一种数据类型——int类型的数组类型。
  2. int[] 数组可以看出,该数组中的元素类型是int类型的。
  3. String[] 数组可以看出,该数组中的元素是String类型的。

3、一维数组的初始化

数组在定义后,必须初始化才能使用。所谓初始化,就是在堆内存中给数组分配存储空间,并为每一个元素赋上初始值,数组初始化有两种方式:
1> 静态初始化;
2> 动态初始化;
数组的长度是固定的,无论以哪种,一旦初始化完成,数组的长度(元素的个数)就固定了,不能改变,除非重新对该初始化。
如果我们事先知道元素是多少,选用静态初始化,事先不知道元素是多少,选用动态初始化。

3.1、一维数组的静态初始化
程序员直接为每一个数组元素设置初始化值,而数组的长度由系统(JVM)决定。

  1. 初始化语法:
数组元素类型[] 数组名 = new 数组元素类型[]{元素1,元素2,元素3,.......};
如:int[] nums = new int[]{1,3,5,7,9};

简单写法:
int[] nums = {1,3,5,7,9};	// 简单写法,定义和初始化必须同时写出来s

3.2、一维数组的动态初始化
程序员只设置数组元素个数,而数组的元素的初始值由系统(JVM)决定。开发者可以提前把数组内存空间申请好,然后再程序运行过程中添值。

  1. 初始化语法:
数组元素类型[] 数组名 = new 数组元素类型[length];
// 例如 
int[] nums = new int[5];
  1. 不同数据类型的初始值:
    在这里插入图片描述
    例如:
    int[] arr1 = new int[3]; int类型数组,每一个元素的初始值为0
    double[] arr2 = new double[5]; double类型数组,每一个元素初始值为0.0
    String[] arr3 = new String[2]; String类型数组,每一个元素的初始值为null

注意 : 不能同时指定元素值和数组长度,反例如下:

int[] nums = new int[5]{1,3,5,7,9}; //错误写法

4、数组的操作

4.1、数组的基本操作

  1. 定义一个数组:
int[] nums = new int[]{1,3,5,7};
  1. 获取数组长度,语法:int size = 数组名.length;
int size = nums.length;         // 输出结果4
  1. 获取元素值,语法:元素类型 变量名 = 数组名[index];
    数组的索引从0开始,最大索引值是数组长度-1,那么索引范围是 [ 0,数组名.length - 1 ]。
 // 获取第一个元素:
 intele1 = nums[0];            // 输出1
 // 获取第二个元素:
 intele2 = nums[1];            // 输出3
// 获取第四个元素:
 intele4 = nums[3];            // 输出7
  1. 设置元素值,语法:数组名[index] = 值;
// 设置第二个元素值
nums[1] = 30;
// 获取第二个元素 
int ele2 = nums[1];   // 输出结果为30

4.2、循环遍历数组

  1. for循环遍历数组

代码如下:

int[] nums = new int[] { 1, 3, 5, 7 };
for (int index = 0; index < nums.length; index++) {
    int ele = nums[index];
    //index依次是 0、1、2、3
    System.out.println(ele);
}

运行结果:

1
3
5
7

Process finished with exit code 0
  1. 使用for-each(增强for循环)操作数组
// for-each语法
for(数组元素类型 变量: 数组){ //TODO }

代码如下:

// 使用for-each操作数组更简单,因为可以不关心索引,其底层原理依然是上述的for循环操作数组。
int[] nums = new int[] { 1, 3, 5, 7 };
for (int ele : nums) {
     System.out.println(ele);
 }

运行结果:

1
3
5
7

Process finished with exit code 0

5、数组的常见异常

  1. NullPointerException
    空指针异常(空引用异常)操作了一个尚未初始化或者没有分配内存空间的数组
  2. ArrayIndexOutOfBoundsException
    数组的索引越界异常,操作的数组的索引不在[0,数组名.length-1]范围内

总结:

以上就是一维数组的详细知识点了,二维数组可以看我下一篇文章。

posted @ 2021-03-12 13:38  Yan_Yang  阅读(1072)  评论(0编辑  收藏  举报