java数组

  1. 声明数组

    数据类型[] 数组名;//常用
    数据类型 数组名[];
    数据类型 []数组名;
    
  2. 创建数组

    • 先声明,在分配空间

      数据类型[] 数组名;
      数组名=new 数据类型[长度];
      
    • 声明数组并分配空间

      数据类型[] 数组名=new 数据类型[长度];
      
    • 声明数组并赋值

      数据类型[] 数组名=new 数据类型[]{元素值1,元素值2,...};
      
    • 声明数组并赋值(简)

      数据类型[] 数组名={元素值1,元素值2,...};//不能换行书写
      
  3. 遍历数组

    for(int i=0;i<数组名.length;i++){
        //通过数组名[i]操作数组元素
    }
    

三.数组的内存结构及复制

  • 数组存储在堆内存中,栈空间的数组名保存的为数组的堆内存地址

  • 基本类型进行变量名相互赋值时,赋值内容为字面值

  • 数组类型进行变量名相互赋值时,赋值内容为数组地址

    在这里插入图片描述

  • 数组的复制

    创建新数组和原数组长度一致,将原数组中元素依次复制到新数组中
    

四.数组的扩容

  • 数组的扩容:"大搬家"思想,创建新数组大于原数组空间,将原数组中所有元素复制到新数组,将引用(原数组名)指向新数组

  • 自定义扩容后的数组,完成元素复

    		//对数组扩容,创建新的更大的数组
    		//依次复制元素
    		//将新数组的地址赋值给原数组的名字
    
  • System.arraycopy(原数组名,原数组起始下标,新数组名,新数组起始下标,复制长度);

  • java.util.Arrays.copyOf(原数组,新长度);//返回新数组

五.可变长参数

public static 返回值类型 函数名(数据类型... 参数名){
    //可变长参数名=数组名,把可变长参数当成数组使用
}
函数名(1,2,...);
//注:可变长参数只能存在形参列表的尾部,且只存在一个

六.数组排序

  • 相邻位置上的两个元素依次比较,按需(从小到大,从大到小)进行比较,交换位置
  • 使用固定下标元素和其他元素依次对比,按需进行比较,确定是否交换位置,完成排序
  • java.util.Arrays.sort(数组名);//默认升序

七.二维数组

  • 概念:数组的元素是数组类型

  • 语法:

    • 先声明再分配空间

      数据类型[][] 数组名;
      数组名=new 数据类型[高维长度][低维长度];
      //数组内部存有几个小数组---行
      //数组的元素数组的长度---列
      
    • 声明数组并分配空间

      数据类型[][] 数组名=new 数据类型[高维长度][低维长度];
      
    • 声明不规则数组

      数据类型[][] 数组名=new 数据类型[高维长度][];
      
    • 声明数组并赋值

      数据类型[][] 数组名={{1,2,...},{3,4,...},{}};
      
    • 数组遍历

      for(int i=0;i<数组名.length;i++){
          for(int j=0;j<数组名[i].length;j++){
              //通过数组名[i][j]获取所有元素
          }
      }
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值