Array
一维数组
- Java语言中的数组是一种引用数据类型。存储在堆内存中。
- 数组的父类是Object。
- 数组是一个数据的集合。
- 数组一旦创建,在Java中规定,长度不可变。
- 所有的数组对象都有length属性,用来获取数组中元素的个数。
- java中的数组要求数组中元素的类型统一。
- 所有数组都是拿第一个的地址作为整个数组对象的内存地址。
- 优点:检索效率高。
- 缺点:1.由于为了保证数组中每个元素的内存地址连续,所以在数组上进行增加、删除操作时效率较低(除了数组最后一个元素)。2.数组不能存储大数据量,因为很难在内存空间上找到一块特别大的连续的内存空间。
- 一维数组语法格式: 数据类型[] 数组名;
- 一维数组的初始化:
静态初始化语法格式: int[] array = {100, 200, 300}; 动态初始化语法格式: int[] array = new int[5]; Object[] = new Object[6]; //可以存储自身和子类 - String[] args数组主要是用来接收用户输入的参数的,默认0
- java中数组的扩容:(效率很低,要尽量减少数组的扩容次数)
先新建一个大容量的数组,然后将小容量数组中的数据一个一个拷贝到大容量的数组中。 语法格式:System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
二维数组
- 二维数组由多个一维数组组成
- 语法格式:
静态初始化: int[][] array = {{1,2,3,…},{4,5,6,…},…} 动态初始化: int[][] array = new int[2][3]; Object[][] o = new Object[5][6]; - array[0][0] 表示第一个一维数组中的第一个元素
代码示例
例子1
public class ArrayTest {
public static void main(String[] args) {
int[] array = new int[6];
array[0] = 1;
System.out.println("数组中元素的个数"+array.length);
System.out.println("数组中第一个元素"+array[0]);
System.out.println("数组中最后一个元素"+array[5]);
System.out.println("数组中最后一个元素"+array[array.length-1]);
for (int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
Object[] array1 = new Object[6];
array1[0] = new Object();
System.out.println("数组中第一个元素"+array1[0]);
}
}
例子2
public class ArrayTest1 {
public static void main(String[] args) {
int[] a = {1,2,3};
printArray(a);
printArray(new int[]{1,2,3});
int[] a1 = new int[3];
printArray(a1);
printArray(new int[3]);
}
public static void printArray(int[] array){
for (int i = 0; i < array.length; i++){
System.out.print(array[i]);
}
System.out.println();
}
}
例子3:String[] args数组
public class ArrayTest2 {
public static void main(String[] args) {
System.out.println("JVM给传递过来的String数组参数,长度为" + args.length);
}
}
例子4:数组拷贝
public class ArrayTest3 {
public static void main(String[] args) {
int[] src = {1,2,3};
int[] dest = new int[10];
System.arraycopy(src,1,dest,3,2);
for (int i = 0; i < dest.length; i++){
System.out.println(dest[i]);
}
}
}
例子4:二维数组
public class ArrayTest4 {
public static void main(String[] args) {
int[][] array = new int[2][3];
for (int i = 0; i < array.length; i++){
for (int j = 0; j < array[i].length; j++){
System.out.print(array[i][j]);
}
System.out.println();
}
}
}
|