星期四, 十一月 05, 2015 14:16
一:一维数组
数组是有序数据集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。
1.数组的声明和内存分配
-----要使用Java的数组,必须经过2个步骤:
a. 声明数组
b.分配内存给该数组
-----格式
数据类型 数组名[]; //声明一维数组
数组名 = new 数据类型[个数]; //分配内存给数组
数据类型 数组名[] = new 数据类型[个数]
----解析
数组类型:
---是声明数组元素的数据类型,
---常见的类型: 整型、浮点型、字符型
数组名:
---用来统一这组相同数据类型的元素的名称,其命名规则和变量相同(小大大)
new:
---是命令编译器根据括号里的个数,在内存一块内存中开辟一块内存供数组使用。
事例~
int score[];
score = new int[3];
变量score所保存的并非是数组的实体,而是数组实体的参考地址.
代码案例:
声明一个一维数组,其长度为3,利用for循环输出数组的内容后,再输出数组的元素个数。
package day03;
public class TestArray {
/* 声明一个以为数组,其长度为3,利用for循环输出数组的内容后,再输出数组的元素个数。*/
public static void main(String[] args) {
int arrayOne[] = new int[3];
for (int i = 0; i< arrayOne.length;i++) {
System.out.println("arrayOne"+"["+i+"]="+arrayOne[i]);
}
System.out.println("数组的个数为:"+arrayOne.length);
}
}
运行结果:
arrayOne[0]=0 arrayOne[1]=0 arrayOne[2]=0 数组的个数为:3
2.数组的赋值
----格式
数据类型 数组名[] = {初值0,初值1,....,初值n}
----例子
int day[] = {12,23,45};//数组声明并赋值
3.数组的应用范例
索引就像房间的编号,先找到某个房间,先找到编号!
说明如何将数组里的最大值及最小值列出。
package day03;
public class TestArray {
/* 声明一个以为数组,其长度为3,利用for循环输出数组的内容后,再输出数组的元素个数。*/
public static void main(String[] args) {
/*说明如何将数组里的最大值及最小值列出。*/
int a[] = {1,3,5,37,25};
/*需要先进行赋值*/
int max = a[0];
int min = a[0];
for(int i = 0; i System.out.print(a[i]+"\t"); if(max < a[i]) { max = a[i]; } if(min > a[i]){ min = a[i]; } } System.out.println(); System.out.println("max="+max); System.out.println("min="+min); } } 运行结果: 1 3 5 37 25 max=37 min=1 4.与数组有关的API方法 ----查阅相关的文档 ----简单介绍数组的拷贝,数组的排序 java api http://docs.oracle.com/javase/7/docs/api/ a.arraycopy复制数组的使用 参考:API ---- arraycopy(Object src, int srcPos, Object dest, int destPos,int length); 参数:可查询api+google 原数组,原起始位置,目的数组,目的起始位置,复制的长度 代码案例: package day03; public class TestArrayCopy { public static void main(String[] args) { /*api arraycopy方法 * 在一维数组中使用,arraycopy方法,会改变原目的的数组*/ int a1[] = {1,3,2}; int a2[] = {2,5,1,2,5,1,98}; System.arraycopy(a1, 0, a2, 3, 3); for(int i = 0; i System.out.print(a2[i]+"\t"); } } } 运行结果: 2 5 1 1 3 2 98 b.sort排序的使用 参考API或google ---sort(int[] a, int fromIndex, int toIndex) 参数: 数组,排序起始位置,排序结束位置 代码案例: package day03; import java.util.Arrays; public class TestArray { public static void main(String[] args) { /*使用sort方法进行排序*/ int s1[] = {1,4,2,5,8}; Arrays.sort(s1,0,4); for(int i = 0; i System.out.print(s1[i]+"\t"); } } } 运行结果: 1 2 4 5 8 二:二维数组 由于一维数组不满足实际的应用,所以需要二维或多维数组。 1.二维数组的声明与分配内存 2.格式 数据类型 数组名[][]; 数组名 = new 数据类型[行的个数][列的个数]; ----数据类型 数组名[][] = new 数据类型[行的个数][列的个数]; 3.数组赋值 如果想直接在声明时就对数组赋初值,可以利用大括号完成。 只要在数组的声明格式后面再加上所赋的初值即可。 数据类型 数组名[][] = {{第0号初值},{第1行的初值},....{第n行初值}} 注意: 用户不需要定义数组的长度。 4.数组展示类型 ----每行的元素个数不同的数组 代码案例: package day03; import java.util.Arrays; public class TestArrayTwo { public static void main(String[] args) { /*每行的元素个数不同的数组*/ int a[][] = {{11,22,33,44,55},{66,77,88,99}}; for(int i = 0;i for(int j = 0;j < a[i].length;j++ ) { System.out.print(a[i][j]+"\t"); } System.out.print("\n"); } } } 运行结果: 11 22 33 44 55 66 77 88 99 ----取得二维数组的行数与特定行数的元素的个数 语法: 数组名.length //取得数组的行数 数组名[行的索引].length //取得特定行元素的个数 5.二维数组元素的引用与访问 案列见上述代码案例 三.多维数组 以三维数组为例,在声明数组时即赋初值,再将其元素值输出并计算总和。 代码案例: package day03; import java.util.Arrays; public class TestArray { public static void main(String[] args) { /*维数组的赋值与输出*/ int a[][][] = {{{5,1},{6,7}},{{8,9},{11,12}}}; for(int i = 0; i < a.length;i++) {