【Java】Java_17 数组
2017-04-18 22:09
127 查看
数组
数组是一种数据类型,属于引用类型。1.定义数组
type[] arrayName; type arrayNmae[];
以上2种定义数组方式的区别:
type[] arrayName:语义强,可读性好(推荐使用)
type arrayName[]:语义差,可读性差
注意:定义数组时布恩那个指定数组的长度。
2.数组的初始化
静态初始化:初始化由程序员显示指定每个数组元素的数据类型,由系统决定数组的长度动态初始化:初始化由程序员只指定数据长度,由系统为数组元素分配初始值
静态初始化的语法如下:
arrayName = new Type[]{element1,element2...element4...} 简化后写法: type[] arrayName = {element1,element2...element4...}
动态初始化:
arrayName = new type[length];
执行动态初始化时,程序员只需要指定数组的长度,即为每个数组元素指定所需的内存空间,系统将负责为这些元素分配初始值。指定初始值时,系统将按如下规则分配初始值。
数组元素的基本类型是基本类型种的整数类型(byte、short、int、long),则数组元素的值为0;
数组元素的基本类型是基本类型种的浮点类型(folat、double),则数组元素的值是0.0
数组元素的基本类型是基本类型种的字符类型(char),则数组元素的值是'\u0000'
数组元素的基本类型是基本类型种的布尔类型(boolean),则数组元素的值是false
数组元素的基本类型是引用类型(类、接口、数组),则数组元素的值是null
3.数组的使用
3.1 读取数组元素定义一个数组,并打印数组中的第一个值
package com.oliver.test; public class TestArray { public static void main(String[] args) { //定义一个Object数组类型的变量,变量名为ObjArr Object[] ObjArr; //初始化数组变量,定义数组时所指定的数组元素的子类 ObjArr = new String[] {"jack","Alice"}; System.out.println(ObjArr[0]); } }
打印数组中的每个元素
package com.oliver.test; public class TestArray { public static void main(String[] args) { //定义一个Object数组类型的变量,变量名为ObjArr Object[] ObjArr; //初始化数组变量,定义数组时所指定的数组元素的子类 ObjArr = new String[] {"jack","Alice"}; //循环打印数组元素 for(int i=0;i<ObjArr.length;i++){ System.out.println(ObjArr[i]); } } }
错误一:java.lang.ArrayIndexOutOfBoundsException: 10
错误源码:
package com.oliver.test; public class TestArray { public static void main(String[] args) { //定义一个Object数组类型的变量,变量名为ObjArr Object[] ObjArr; //初始化数组变量,定义数组时所指定的数组元素的子类 ObjArr = new String[] {"jack","Alice"}; System.out.println(ObjArr[10]); } }
错误分析:导致该错误的原因是因为需要打印的数组元素不存在(数组索引越界异常)
3.2 foreach循环
使用foreach循环,这种循环遍历无需获取数组和集合长度,无需根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素
语法:
for(type variableName : array | collection)
{
//variableName 自动迭代访问每个元素...
}
代码示意:
package com.oliver.test; public class TestForeach { public static void main(String[] args) { String[] s = {"张三丰","张无忌","张飞"}; for(String n : s){ System.out.println(n); } } }
相关文章推荐
- java生成不重复的随机数【某个范围0-10】或者【某个数组int[1,3,56,14,26,22,17]】
- 【Java面试题】17 如何把一个逗号分隔的字符串转换为数组? 关于String类中split方法的使用,超级详细!!!
- 17、java数组查找与交换排序及快速排序
- Java笔记 7_17 数组
- 【JAVA】17、数组应用范例
- JAVA学习笔记17——数组
- 《thinking in java》笔记17 -Array数组
- 操纵java数组[转]
- Java数组学习心得
- [Java]学习Java(3)数组、字符串
- JAVA数组和JAV集合类的操作
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- 操纵java数组[珍藏]
- 如何封装查询记录到Java对象数组
- java数组的处理(过滤元素)
- 操纵java数组
- 学习java中的数组:打印n*n矩阵的螺旋方形和回字形
- JAVA数组和JAV集合类的操作
- Java数组学习心得,欢迎拍砖
- Java数据结构---基于数组的表