java数组用法

一、数组的特点

  • 数组是一个引用类型
  • 数组是在堆内存中的一串连续的地址存在
  • 堆内存的数组空间长度一但确定 不能再次发生改变
  • 数组在初始化必须指定长度
  • 栈内存的变量中存储的是数组的地址引用
  • 数组内部存储的类型可以是基本数据类型 也可以是引用类型
    • 数组是一组数据类型相同的数据组合,将这些数据统一的管理起来
    • 数组本身是一个引用数据类型,数组内存的类型可以是基本数据类型,也可以是引用类型

二、数组的定义

//第一种  有长度没有元素
//动态初始化
数据类型[] 数组名字=new 数据类型[长度];
//第二种  有元素没有长度
//静态初始化
数据类型[] 数组名字=new 数据类型[]{}

实例:

//定义了一个长度为5的数组 但是没有元素
//动态初始化的实例
String[] array=new String[5];
//定义一个有三个元素的数组   但是没有长度
//静态初始化的实例
String[] array1=new String[]{"第一个值","第二个值","第三个值"}

注:在静态初始化数组的时候, 此时的数组不是真的没有元素,每个类型都有自己对应的默认值

  • 整数默认值:0
  • 浮点数默认值:0.0
  • 字符型默认值:0—char 97—a 65-A 48—’0‘
  • 布尔型默认值:false
  • 引用数据默认值:null

我们该怎么判断什么时候使用静态初始化的数组还是动态初始化的数组

  • 当元素个数比较少的时候 -----静态初始化
  • 当元素个数很多的时候并且有规律-----动态初始化
  • 元素个数多并且没有规律的时候-----静态初始化

三、数组的使用

  1. 访问数组

    通过元素在数组中的位置来访问数组的索引是从0开始的

    String[] array=new String[]{"这是第一个值","这是第二个值","这是第三个值"}
    //通过元素在数组中的位置index(下标)来访问
    //array[index]
    String value=array[0];
    String value1=array[1];
    String value2=array[2];
    System.out.println(value);
    System.out.println(value1);
    System.out.println(value1);
    

    以上程序执行的结果:

    这是第一个值
    这是第二个值
    这是第三个值
    
  2. 遍历数组中的元素
    • 通过循环的方式访问数组中的每一个元素
    //定义一个数组
    String[] array=new String[3];
    //给数组添加数据 根据下标赋值
    array[0]="这是第一个值";
    array[1]="这是第二个值";
    array[2]="这是第三个值";
    //遍历数组中的元素
      for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
      }
    

    以上程序执行结果为:

    这是第一个值
    这是第二个值
    这是第三个值
    
    • 在jdk1.5之后增加了很多特性,出现了一个新的特性,增强for循环
     //定义一个数组
    String[] array=new String[3];
    //给数组添加数据 根据下标赋值
    array[0]="这是第一个值";
    array[1]="这是第二个值";
    array[2]="这是第三个值";
    //遍历数组中的元素  使用增强for循环
    for (String item:array) {
         System.out.println(item)
    }
    

    以上程序执行的结果为:

    这是第一个值
    这是第二个值
    这是第三个值
    

四、二维数组

二维数组就是一维数组的嵌套

二位数组

  1. 数组的定义
    //动态初始化
    数据类型 数组名[][]=new 数据类型[m][n];
    //静态初始化
    数据类型 数组名[][]={{}}
    

    实例:

    //动态初始化
    String arrays[][]=new String[2][2];
     	array[0][0]="这是第一个数组中的第一个值";
        array[0][1]="这是第一个数组中的第二个值";
        array[1][0]="这是第二个数组中的第一个值"
        array[1][1]="这是第二个数组中的第二个值";
    //静态初始化
    String[][] array={{"这是第一个数组中第一个值","这是第一个数组中的第二个值"},{"这是第二个数组中的第一个值","这是第二个数组中的第二个值"}};
    

    以上两种不同创建方式的数组结果都是一样的

  2. 数组的使用

    通过双层循环遍历出二维数组中的元素

    • 通过for循环遍历
    String arrays[][]=new String[2][2];
     	array[0][0]="这是第一个数组中的第一个值";
        array[0][1]="这是第一个数组中的第二个值";
        array[1][0]="这是第二个数组中的第一个值"
        array[1][1]="这是第二个数组中的第二个值";
     for(int i=0;i<array.length;i++){
           for(int j=0;j<array[i].length;j++){
                System.out.println(array[i][j]);
          }
    }
    

    以上程序执行结果为:

    这是第一个数组中的第一个值
    这是第一个数组中的第二个值
    这是第二个数组中的第一个值
    这是第二个数组中的第二个值
    
    • 通过增强for来遍历数组中的元素
    String arrays[][]=new String[2][2];
     	array[0][0]="这是第一个数组中的第一个值";
        array[0][1]="这是第一个数组中的第二个值";
        array[1][0]="这是第二个数组中的第一个值"
        array[1][1]="这是第二个数组中的第二个值";
      for (String items[]:array) {
           for (String item:items){
               System.out.println(item);
           }
      }   
    

    以上程序执行的结果为:

    这是第一个数组中的第一个值
    这是第一个数组中的第二个值
    这是第二个数组中的第一个值
    这是第二个数组中的第二个值
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值