数组
数组的概念
数组由同一类型的对象或着基本数据组成,并封装在同一个标识符下。
- 数组是对象
- Java数组需要动态初始化
- 数组可以赋值给Object类的变量
- 在数据中可以调用Object的所有方法
- 每个数组都有一个成员变量:length
- 数组元素
- 数组中的变量都成为数组元素
- 数组元素没有名字,需要通过数组名以及下标进行访问
- 数组的创建和使用
- 数组的声明
- 数组的创建
- 数组元素的初始化
- 使用数组
数组引用的声明
- 声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间
- 不能直接使用,必须经过初始化后才能使用
数组声明举例:
//Type[] arratName
int[] intArray;
String[] stringArray;
//Type arrayName[]
int intArray[];
Stirng stringArray[];
数组的创建
- 用关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。个数可以是啊常量也可以是变量
- 基本类型数组的每个元素都是一个基本元素,引用类型的数组每个元素都是一个引用
数组创建举例
arrName = new Type[componets number];
//例如:
int[] ai;
ai = new int[10];
String s;
s = new String[3];
//或可以将数组的声明与创建一并执行
int ai[] = new int[10];
//可以在一条声明语句中创建过多个数组
String[] s1 = new String[3], s2 = new String[8];
数组元素的初始化
-
声明数组时,给出了数组的初始值,程序会利用初始值对每个元素进行初始化
int a[]={22,33,44,55};
-
创建数组时,如果没有指定初始值,数组便会被赋予默认初始值
- 基本类型初始值为0
- 引用类型初始值为NULL
使用数组
-
引用数组的一个元素:
arrayName[index]- 数组下标必须是int,short,byte或者char。
- 下标从零开始计数
-
元素个数即为数组的长度,可以用过arrayName.length得到
-
数组的最大下标为length-1,若果数组越界将范围错误,程序立即停止
-
数组名是一个引用:
public class Arrays { public static void main(String[] args) { int[] a1 = {1,2,3,4,5}; int[] a2; a2=a1; for(int i=0;i<a2.length;++i) a2[i]++; for(int i=0;i<a1.length;++i) System.out.println("a1["+i+"]="+a1[i]); } }
运行结果:
-
字符串引用构成的数组——每个元素都是引用
public class ArrayOfStringDemo { public static void main(String[] args) { String[] anArray = { "String One","String two","String Three" }; for(int i=0;i<anArray.length;++i) { System.out.println(anArray[i].toLowerCase()); } } }
结果:
复制数组或数组的部分元素
public static void arraycopy(Object source, int srcIndex, Object dest,
int destIndex, int length)
public class ArrayCopyDemo {
public static void main(String[] args) {
char[] copyFrom = {'d','e','c','a','f','f','e',
'i','n','a','t','e','d'};
char[] copyTo = new char[7];
System.arraycopy(copyFrom,2 , copyTo, 0, 7);
System.out.println(new String(copyTo));
}
}
输出结果:
多维数组
int[][] gradeTable;
gradeTable[0][0] = 99
二维数组的声明和构造——多种方式
- int [][] myArray;
- int [][] myArray = new int[3]\[5];
- int [][] myArray = {{8,1,2,2,9},{1,9,4,0,3},{0,3,0,0,7}};
- 二维数组的长度及每行的长度
public class UnevenExample3 {
public static void main(String[] args) {
//声明构造一个二维数组
int[][] uneven =
{{1,9,4},
{0,2},
{0,1,2,3,4}
};
//数组的长度(行数)
System.out.println("Length of array is:"+uneven.length);
}
}
运行结果: