数组的概述

  1. 数组:是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
  2. 数组的相关概念:数组名、元素、角标/下标/索引、数组的长度(数组中元素的个数)
  3. 数组的特点:
    • 数组是有序排列的
    • 数组本身是引用数据类型,但数组的元素可以是任何数据类型(基本数据类型、引用数据类型)
    • 数组在内存中开辟的是一块连续的空间
    • 数组的长度一旦确定,就不能修改
  4. 数组的分类:
    • 按维数分类:一维、二维、三维······
    • 按数据元素数据类型分类:基本数据类型元素的数组、引用数据类型的数组

一维数组的使用:

  1. 数组的声明和初始化

    • 静态初始化:数组的声明和初始化赋值同时进行

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

    • 动态初始化:数组的声明和初始化赋值分开进行

      String[] names = new String[5];

​ 一旦初始化完成,数组的长度就确定下来了

  1. 如何调用数组的指定位置的元素

    数组的角标是从0开始到数组的长度-1结束。

    names[0]——表示第一个元素

  2. 如何让获取数组的长度

    使用数组的属性:lengh

    eg:names.length

  3. 如何遍历数组的元素

    借助循环结构

    for(int i=0;i<names.length;i++) {
    System.out.println(names[i]);
    }
  4. 数组元素的默认初始化值

    • 数组元素是整型:0
    • 数组元素是浮点型:0.0
    • 数组元素是boolean型:false
    • 数组元素是char型:0或'\u0000',而非'0'
    • 数组元素是引用数据类型:null
  5. 数组的内存解析

二维数组的使用

二维数组:一维数组的元素是另一个一维数组

  1. 二维数组的声明和初始化

    静态初始化:

    int[][] arr1 = new int[][]{{1,2,3},{6,8},{3,6,8,9}};

    动态初始化:

    ​ ①String[][] arr2 = new String[4][3];

    ​ ②String[][] arr3 = new String[4][];

    其他也正确的写法

    ​ ①String[] arr4[]String arr[][]【[]的位置放在类型或变量后面都可以,一维数组同】

    ​ ②int[][] arr1 = {{1,2,3},{6,8},{3,6,8,9}}; 【类型推断】

  2. 如何调用二维数组的指定位置的元素

    System.out.println(arr1[2][0]);//3
    
    System.out.println(arr2[3][1]);//null
    
    //arr3[2] = new String[4];
    System.out.println(arr3[2][3]);//报错,需先赋值
  3. 如何让获取二维数组的长度

    属性:length

  4. 如何遍历二维数组的元素

    嵌套循环

    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
    System.out.println(arr[i][j]);
    }
    }
  5. 二维数组元素的默认初始化值

    ​ 规定:二维数组分为外层数组元素,内层数组元素 int[][] arr = new int[3][4]

    ​ 外层数组元素,arr[0],arr[1] 内层数组元素,arr[0][0],arr[1][2]

    ①外层数组元素的默认初始化值为地址值;内层数组元素的默认初始值,同一维数组,与数据类型有关

    ②特殊的,针对String[][] arr3 = new String[4][];定义方式,外层的默认初始值:null;内层数组元素不能调用,否则报错。

  6. 二维数组的内存解析

最新文章

  1. java使用websocket,并且获取HttpSession,源码分析
  2. 解决eclipse端口占用问题
  3. [软件架构]模块化编程思想及(C++)实践
  4. 数据结构作业——order(二叉树遍历)
  5. ini 文件
  6. [MySQL] - MySQL的Grant命令
  7. eclipse启动无响应,停留在Loading workbench状态
  8. Microsoft visual studio中文字样输出
  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单
  10. [OGRE]看备注学编程(02):打地鼠01-布置场地九只地鼠
  11. OCP-1Z0-051-题目解析-第28题
  12. HTC M7日文版HTL22刷机包 毒蛇2.5.0 ART NFC Sense6.0
  13. Html的第一次小结
  14. CSS排序工具csscomb
  15. adb server is out of date. killing... ADB server didn&#39;t ACK解决方法
  16. 【Oracle 11gR2】静默安装 db_install.rsp文件详解
  17. 面向对象的Shell脚本
  18. C语言与VT100控制码编程
  19. 判断 iframe 是否加载完毕
  20. 使用KindEditor完成图片上传(springmvc&amp;fastdfs/springmvc&amp;ftp)

热门文章

  1. LGP4916题解
  2. 安装ncclient出现rust版本不对问题解决
  3. 【基础】工作中常用的linux命令,经常会被面试官问到
  4. 网站SQL注入防御实战
  5. bitsadmin windwos自带下载命令
  6. 74CMS 3.0 任意文件删除漏洞
  7. spring-boot中的AOP
  8. List和 Map区别?
  9. Spring MVC 框架有什么用?
  10. 学习RabbitMQ(三)