什么是数组:就是一堆相同类型的数据放一堆(一组相关变量的集合)
定义语法:
1.声明并开辟数组
数据类型 数组名[] = new 数据类型[长度];
2.分布完成
- 声明数组:数据类型 数组名 [] = null;
- 开辟数组:数组名 = new 数据类型[长度];
public class test2 { public static void main(String args[]) { int arr[] = new int[3]; arr[0] = 1; arr[1] = 2; arr[2] = 3; for(int i=0;i<3;i++) { System.out.println(arr[i]); } } }
内存分析:
- 声明并开辟数组
2.分布完成
数组内存引用
数组是一个引用数据类型
public class test2 { public static void main(String args[]) { int arr[] = new int[3]; arr[0] = 1; arr[1] = 2; arr[2] = 3; int arr_tem[] = arr; arr_tem[0] = 100; for(int i=0;i<3;i++) { System.out.println(arr[i]); } } } //输出为
100 2 3
以上方法都是数组的动态初始化,都是为数组先开辟空间,之后再赋值。这里,就会联系到之前学习的构造方法了(再实例化对象时产生默认值),下面将介绍数组的两种静态初始化方法。
简单方法:int arr[] = {值,值,值......} //尽量不要用
完整方法:int arr[] = new int[] {值,值,值......}
public class test2 { public static void main(String args[]) { int arr[] = new int[] {1,2,3}; int arr_tem[] = arr; arr_tem[0] = 100; for(int i=0;i<3;i++) { System.out.println(arr[i]); } } }
数组操作方法:
- System.arraycopy(源数组,源数组索引,目标数组,目标数组索引,长度)
public class test2 { public static void main(String args[]) { int arr_1[] = new int[] {1,2,3,4,5,6,7 }; int arr_2[] = new int[] {11,22,33,44,55,66,77 }; System.arraycopy(arr_1, 2, arr_2, 2, 3);//将数组2替换为11,22,3,4,5,66,77 for(int i=0; i<arr_2.length; i++) { System.out.println(arr_2[i]); } } }
- java.util.Arrays.sort()
public class test2 { public static void main(String args[]) { int arr[] = new int[] {1,3,2,9,5,7,6,4}; java.util.Arrays.sort(arr); for(int i=0; i<arr.length; i++) { System.out.println(arr[i]); } } }