Java学习笔记——Java基础语法(四、数组)

时间:2020-8-24 作者:admin


Java基础语法(四、数组)

数组的定义和访问

案例分析:

假如现在要统计某个公司员工的工资情况,以前面所学的知识,公司有100个员工就要定义100变量分别存储每个员工的工资,如果想要输出他们的工资还要编写100次System.out.println()语句,如果再去计算公司员工最高工资、最低工资、平均工资情况,就很难操作而且错误率会很高。

因此我的们可以使用数组(容器),将所有的数据全部存储到一个相关类型的数组中,统一操作。

概念:数组是存储一组相同类型数据的数据结构

特点:

  • 数组的元素必须是相同类型,不允许出现混合类型
  • 数组的长度是确定的,数组一旦被创建,不允许出现混合类型
  • 数组中的元素可以是基本数据类型,也可以是引用类型(数组、类、接口)
  • 数组本身属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量

数组的定义

语法一

语法:

数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];

动态初始化:数组先开辟内存空间,然后再使用索引再对里面元素的内容进行设置。

说明:

  • 数组存储的数据类型:定义创建的数组可以存储哪种类型的数据
  • []:表示数组
  • 数组名字:数组的变量名
  • new:创建数组是使用的关键字
  • 数组存储的数据类型:必须和前面的数据类型一致
  • 长度:定义数组的长度,表示可以存储元素的个数,长度指定后不可更改

举例:

int[] ints = new int[5];
char[] chars = new char[5];
boolean[] booleans = new boolean[2];
String[] strs = new String[5];
语法二

语法:

数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[]{元素1,元素2,元素3...};
  • 静态初始化:在创建数组时就对数组进行初始化操作。
  • []不用指定数组的长度,数组的长度直接由{}中元素的个数决定

举例:

int[] ints = new int[]{1,2,3,4,5};
语法三

语法:

数组存储的数据类型[] 数组名字 = {元素1,元素2,元素3...};
  • 静态初始化

举例:

int[] ints = new int[]{1,2,3,4,5};

数组的访问

  • 索引:每一个存储到数组的元素,都会自动拥有一个整数编号,从0开始,这个编号就是数组的索引或者下标
  • 可以通过 数组名[索引] 访问到数组中的元素。
  • 数组的长度属性:每个数组都有自己的长度,而且时固定的,使用 数组名.length ,可以获得数组的长度。(数组的最大索引值为数组名.length-1)
  • 索引访问数组的元素
    • 数组名[索引]=数值,为数组的元素赋值
    • 数组名[索引],获取数组中的元素
public class Test1{
    public static void main(String[]args){
        int[] ints =new int[3];
        ints[0] = 10;
        ints[1] = 20;
        ints[2] = 30;
        System.out.println(ints[1]);        
    }
}

数组的两个异常

数组越界异常
public static void main(String[]args){
    int[] ints = {1,2,3};
    System.out.println(ints[3]);
}

创建数组,赋值了三个元素,使用ints[3],数组中没有索引3,因此我们访问不到数组中的第四个元素,程序运行后会抛出ArrayIndexOutOfBoundsException数组索引越界异常 。

数组空指针异常
public static void main(String[]args){
    int[] ints = null;//数组属于引用类型,如果给引用类型赋值为空,那就是null
    System.out.println(ints[0]);
}

因为ints = null,索引再访问数组中的元素时,会产生一个**NullPointerException空指针异常 **。

数组的遍历

数组元素下表的合法区间:[0,length-1]。可也通过下标来遍历数组中的元素,遍历时可以读取元素的值或者修改元素的值

public class Test2{
    public static void main(String[]args){
        int[] ints = {1,2,3,4,5,6,7,8};
        
        for(int i=0;i<ints.length;i++){
            System.out.println(ints[i]);
        }
        
        //foreach循环用于读取数组元素的值,不能修改元素的值
        for(int m :ints){
            System.out.println(m);
        }
    }
}
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。