Java基础之数组类型

数组类型

  • 概述: 数组是编程语言中最常见的一种数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常可以通过数组元素的索引来访问数组元素。
  • 数组特点
    • 数组中可以存储任何数据类型,但数组中的的变量类型要一致。
    • 数组中的元素是连续的。
    • 数组初始化完成后,数组在内存中所占的空间将被固定下来,因此数组的长度是不可变的
  • 一维数组
    • 定义格式

      • ① 数组类型[] 数组名(推荐使用这种定义格式)
      • ②数组类型 数组名[]
    • 数组的初始化

      • Java中的数组必须先初始化,才能使用;初始化,就是为数组中的元素分配空间,并为每个元素赋初值

      • 静态初始化

        • 初始化时,指定每个元素的初始值,由系统决定数组长度(推荐使用)
        • 格式:数据类型[] 数组名=new 数据类型[] {元素1,元素2… …}
        • 简化格式:数据类型[] 数组名={元素1,元素2… …}
        • 注意:不要同时动态和静态初始化,也就是说,不要初始化数组时既指定数组的长度,又为每个元素分配初始值
          • 比如:int[] arr=new int[3]{1,2,3} 这种方式就是错误
      • 动态初始化

        • 初始化时,只指定数组的长度,由系统为数组分配初始值
          • 格式:数据类型[] 数组名=new 数据类型[数组长度]
          • 动态初始化系统默认数组每个元素的初始值
            • byte short int long型数组:0
            • float double型数组:0.0
            • char型数组:‘\u0000’
            • 引用类型数组:null
    • 操作数组

      • 首先了解一下数组的缺陷
        • ①数组的长度一经确定就不能改变
        • ②同意数组中的元素数据类型必须一致
      • 数组缺陷的解决方法
        • ①使用System下的arrayCopy()方法,拷贝数组,可以实现扩容
          • public static void arrayCopy(Object src,int srcPos,Object dest,int destPos,int length)
            • src:源数组,即要被复制的数组
            • srcPos:源数组要被复制的起始位置,参数是开始复制的下标
            • dest:目的数组,即将源数组复制放入的数组
            • destPos:目的数组放置的起始位置
            • length:复制的长度
        • ②Object类型数组可以存放任意类型数据(Object是所有类的直接或间接父类)
      • 使用数组
        • Java语言的数组索引是从0开始的,第一个元素的索引为0,最后一个元素的索引为数组长度减一

          System.out.println(objArr[1]);
          //输出数组objArr的第二个元素
          
        • 所有数组都提供一个length属性,通过这个属性可以访问到数组的长度,所以可以利用length属性使用循环遍历数组

          for(int i=0;i<objArr.length;k++)
          	System.out.println(objArr[i]);
          
        • Java5以后,Java提供了一种更加简单的循环:foreach循环,使用foreach循环遍历数组和集合元素时,无需获得数组和集合长度,也无需根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素

          • 语法格式
          for(type variableName :array|collection)
          	//variableName自动得带访问每个元素
          
          • 注意:使用foreach循环迭代数组元素时,并不能改变数组元素的值,因此不要对foreach的循环变量进行赋值
    • 二维数组

      • 二维数组其实就是一个元素为一维数组的数组
      • 定义格式:
        • ①数据类型[][] 变量名=new数据类型[m][n];(推荐
          m表示这个二维数组有多少个一维数组
          n表示给一个一维数组的元素个数
        • ②数据类型[][] 变量名=new 数据类型[m][];
          m表示这个二维数组有多少个一维数组
          没有直接给出一维数组的元素个数,可以动态的给出
          在这里插入图片描述
        • ③数据类型[][] 变量名=new 数据类型[][]{{元素… …},{元素… …}… …}
          简化版格式:
          数据类型[][] 变量名={{元素… …},{元素… …}… …}
      • 注意:
        1.以下格式也可以表示二维数组:
        a.数据类型 数组名[][]=new 数据类型[m][n];
        b.数据类型[] 数组名[]=new 数据类型[m][n];
        2.注意下面定义的区别:
        int [] x;//一维数组
        int [] y[];//二维数组
        int [] x,y[];//一维数组和二维数组合并写在一条语句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值