Java学习——数组的基础知识
数组的概述
- 数组:是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
- 数组的相关概念:数组名、元素、角标/下标/索引、数组的长度(数组中元素的个数)
- 数组的特点:
- 数组是有序排列的
- 数组本身是引用数据类型,但数组的元素可以是任何数据类型(基本数据类型、引用数据类型)
- 数组在内存中开辟的是一块连续的空间
- 数组的长度一旦确定,就不能修改
- 数组的分类:
- 按维数分类:一维、二维、三维······
- 按数据元素数据类型分类:基本数据类型元素的数组、引用数据类型的数组
一维数组的使用:
数组的声明和初始化
静态初始化:数组的声明和初始化赋值同时进行
int[] ids;
ids = new int[]{1,2,3,4};
动态初始化:数组的声明和初始化赋值分开进行
String[] names = new String[5];
一旦初始化完成,数组的长度就确定下来了
如何调用数组的指定位置的元素
数组的角标是从0开始到数组的长度-1结束。
names[0]——表示第一个元素
如何让获取数组的长度
使用数组的属性:lengh
eg:names.length
如何遍历数组的元素
借助循环结构
for(int i=0;i<names.length;i++) {
System.out.println(names[i]);
}
数组元素的默认初始化值
- 数组元素是整型:0
- 数组元素是浮点型:0.0
- 数组元素是boolean型:false
- 数组元素是char型:0或'\u0000',而非'0'
- 数组元素是引用数据类型:null
数组的内存解析
二维数组的使用
二维数组:一维数组的元素是另一个一维数组
二维数组的声明和初始化
静态初始化:
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}};
【类型推断】如何调用二维数组的指定位置的元素
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]);//报错,需先赋值
如何让获取二维数组的长度
属性:length
如何遍历二维数组的元素
嵌套循环
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.println(arr[i][j]);
}
}
二维数组元素的默认初始化值
规定:二维数组分为外层数组元素,内层数组元素
int[][] arr = new int[3][4]
外层数组元素,
arr[0],arr[1]
内层数组元素,arr[0][0],arr[1][2]
等①外层数组元素的默认初始化值为地址值;内层数组元素的默认初始值,同一维数组,与数据类型有关
②特殊的,针对
String[][] arr3 = new String[4][];
定义方式,外层的默认初始值:null;内层数组元素不能调用,否则报错。二维数组的内存解析
最新文章
- java使用websocket,并且获取HttpSession,源码分析
- 解决eclipse端口占用问题
- [软件架构]模块化编程思想及(C++)实践
- 数据结构作业——order(二叉树遍历)
- ini 文件
- [MySQL] - MySQL的Grant命令
- eclipse启动无响应,停留在Loading workbench状态
- Microsoft visual studio中文字样输出
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单
- [OGRE]看备注学编程(02):打地鼠01-布置场地九只地鼠
- OCP-1Z0-051-题目解析-第28题
- HTC M7日文版HTL22刷机包 毒蛇2.5.0 ART NFC Sense6.0
- Html的第一次小结
- CSS排序工具csscomb
- adb server is out of date. killing... ADB server didn&#39;t ACK解决方法
- 【Oracle 11gR2】静默安装 db_install.rsp文件详解
- 面向对象的Shell脚本
- C语言与VT100控制码编程
- 判断 iframe 是否加载完毕
- 使用KindEditor完成图片上传(springmvc&;fastdfs/springmvc&;ftp)