JAVA学习笔记——数组
2012-07-12 15:31
351 查看
JAVA学习笔记——数组
软件版本:
java version "1.7.0_05"
eclipse
目录:
1. 声明数组
2. 实例化数组
3. 初始化数组
4. 二维数组
5. length 属性
6. foreach 循环
7. 参考资料
1. 声明数组
JAVA 支持两种格式声明数组:
type[] ArrayName;
type ArrayName[]; // 不推存这样子写
要注意的是,声明后的数组还不能使用。它只声明变量 ArrayName 为 type 类型的数组,并没有指向任何有效内存空间(相当于指针),所以不能使用。在定义的过程中,也不可以在方括号内指定数组的长度。
数组的长度是在数组实例化或者数组初始化的过程中确定下来的,只有被实例化或者初始化后的数组才能够使用。
2. 实例化数组
所谓的实例化,其实就是为数组在堆中分配内存空间。格式为:
1)
type[] ArrayName; // 声明数组
ArrayName = new type[length]; // 实例化数组,为数组分配内存
2)
type[] ArrayName = new type[length]; // 声明并实例化数组
3. 初始化数组
初始化数组其实不但将数组实例化,而且还赋予了数组初始值。格式为:
1)
type[] ArrayName; // 声明数组
ArrayName = new type[]{element1, element2, element3,...}; // 初始话数组
2)
type[] ArrayName = {element1, element2, element3,...}; // 定义并初始化数组·········(1)
要注意的是,下面这样子初始化是不行的。
type[] ArrayName; // 定义(声明)数组
ArrayName = {element1, element2, element3,...}; // 注意与(1)的区别
既指定长度,又进行赋值,也是不行的:
1)
type[] ArrayName; // 声明数组
ArrayName = new type[length]{element1, element2, element3, ...}; // 初始话数组
2)
type[] ArrayName = new type[length]{element1, element2, element3, ...}; // 定义并初始化数组
4. 二维数组
可以这样子理解二维数组,就是建立一个数组用来存储多个不同长度的一维数组。对于 n 维数组可以理解为,建立一个数组,储存多个不同长度的 n-1 维数组。二维数组的声明方法:
type[][] ArrayName;
type ArrayName[][]; // 还是不推荐这样子写
type[] ArrayName[]; // 这么怪的写法也支持
实例化:
1)
type[][] ArrayName = new type[length1][length2]; // 声明并实例化
2)
type[][] ArrayName = new type[length1][]; // 只实例化第一级数组是可以的,但是不能只实例化第二级数组
ArrayName[num1] = new type[length2]; // 实例化第二级数组
ArrayName[num2] = new type[length3]; // 他们的长度可以不一样
初始化:
type[][] ArrayName = new type[][]{{elements1...}, {elements2...}, {elements2...}, ...};
type[][] ArrayName = {{elements1...}, {elements2...}, {elements2...}, ...}; // 也可以这样子
就这样子看起来有点复杂,弄个例子容易明白点。
5. length 属性
在 JAVA 中所有的数组都提供一个 length 属性,表示数组的长度。我们可以通过它来遍历整个数组。
你猜一下,如果 ArrayName 是一个二维数组将会怎么样?将会输出第一级数组的长度。
6. foreach 循环
foreach 循环,用来循环遍历数组和集合会更加简洁。格式:
for(type variableName : ArrayName | collection)
{
// 每一次循环 variableName 都将获取 ArrayName 中的一个元素,直到最后一个跳出循环。
}
例子:
由于 numbers 是一个二维数组,所以第 6 行的 i 是一个一维数组。这样子 i 才能指向每一个 nembers 的第一级数组。
7. 参考资料
[1]. 《疯狂JAVA讲义》李刚
[2]. http://android.yaohuiji.com/archives/3379
软件版本:
java version "1.7.0_05"
eclipse
目录:
1. 声明数组
2. 实例化数组
3. 初始化数组
4. 二维数组
5. length 属性
6. foreach 循环
7. 参考资料
1. 声明数组
JAVA 支持两种格式声明数组:
type[] ArrayName;
type ArrayName[]; // 不推存这样子写
要注意的是,声明后的数组还不能使用。它只声明变量 ArrayName 为 type 类型的数组,并没有指向任何有效内存空间(相当于指针),所以不能使用。在定义的过程中,也不可以在方括号内指定数组的长度。
数组的长度是在数组实例化或者数组初始化的过程中确定下来的,只有被实例化或者初始化后的数组才能够使用。
2. 实例化数组
所谓的实例化,其实就是为数组在堆中分配内存空间。格式为:
1)
type[] ArrayName; // 声明数组
ArrayName = new type[length]; // 实例化数组,为数组分配内存
2)
type[] ArrayName = new type[length]; // 声明并实例化数组
3. 初始化数组
初始化数组其实不但将数组实例化,而且还赋予了数组初始值。格式为:
1)
type[] ArrayName; // 声明数组
ArrayName = new type[]{element1, element2, element3,...}; // 初始话数组
2)
type[] ArrayName = {element1, element2, element3,...}; // 定义并初始化数组·········(1)
要注意的是,下面这样子初始化是不行的。
type[] ArrayName; // 定义(声明)数组
ArrayName = {element1, element2, element3,...}; // 注意与(1)的区别
既指定长度,又进行赋值,也是不行的:
1)
type[] ArrayName; // 声明数组
ArrayName = new type[length]{element1, element2, element3, ...}; // 初始话数组
2)
type[] ArrayName = new type[length]{element1, element2, element3, ...}; // 定义并初始化数组
4. 二维数组
可以这样子理解二维数组,就是建立一个数组用来存储多个不同长度的一维数组。对于 n 维数组可以理解为,建立一个数组,储存多个不同长度的 n-1 维数组。二维数组的声明方法:
type[][] ArrayName;
type ArrayName[][]; // 还是不推荐这样子写
type[] ArrayName[]; // 这么怪的写法也支持
实例化:
1)
type[][] ArrayName = new type[length1][length2]; // 声明并实例化
2)
type[][] ArrayName = new type[length1][]; // 只实例化第一级数组是可以的,但是不能只实例化第二级数组
ArrayName[num1] = new type[length2]; // 实例化第二级数组
ArrayName[num2] = new type[length3]; // 他们的长度可以不一样
初始化:
type[][] ArrayName = new type[][]{{elements1...}, {elements2...}, {elements2...}, ...};
type[][] ArrayName = {{elements1...}, {elements2...}, {elements2...}, ...}; // 也可以这样子
就这样子看起来有点复杂,弄个例子容易明白点。
int[][] numbers = new int[][]{{2, 3}, {5, 10}, {20, 30}}; String[][] str = new String[][]{new String[3], new String[]{"hello"}};
5. length 属性
在 JAVA 中所有的数组都提供一个 length 属性,表示数组的长度。我们可以通过它来遍历整个数组。
for(int i = 0; i < ArrayName.length; i++) { System.out.println(ArrayName[i]); }
你猜一下,如果 ArrayName 是一个二维数组将会怎么样?将会输出第一级数组的长度。
6. foreach 循环
foreach 循环,用来循环遍历数组和集合会更加简洁。格式:
for(type variableName : ArrayName | collection)
{
// 每一次循环 variableName 都将获取 ArrayName 中的一个元素,直到最后一个跳出循环。
}
例子:
public class test { public static void main(String[] args) { int[][] numbers = new int[][]{{2, 3}, {20, 30, 40}, {200, 300}, {2000, 3000}}; for(int i[] : numbers) { for(int j : i) { System.out.println(j); } } } }
由于 numbers 是一个二维数组,所以第 6 行的 i 是一个一维数组。这样子 i 才能指向每一个 nembers 的第一级数组。
7. 参考资料
[1]. 《疯狂JAVA讲义》李刚
[2]. http://android.yaohuiji.com/archives/3379
相关文章推荐
- Java 数组的定义 学习笔记
- java数组学习笔记
- Java学习笔记-数组
- java学习笔记5.22多维数组以及对象和类
- Java学习个人笔记---Java数组内存
- Java学习笔记一:基本语法:类和对象的介绍、数组、引用类型
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- java学习笔记04--数组
- java 从零开始,学习笔记之基础入门<数组列表(ArrayList)>(九)
- Java学习笔记之流程控制,数组(四)
- Java菜鸟学习笔记--数组篇(三):二维数组
- Java学习笔记 Day04 (for循环嵌套、函数以及函数重载、数组)
- Java学习笔记—数组的用法
- Java学习笔记2016.2.20 包装类、数组
- java基础学习笔记(复习) ---- 数组
- java学习笔记继承、多态和数组
- JAVA学习笔记17——数组
- JAVA学习笔记(4-1-数组及常见操作1)
- Java学习笔记33. 比较两个数组是否相等 Arrays.equals(A,B)方法
- JAVA学习笔记(4-2-数组排序|查找)