JAVA:一维数组
数组:相同数据类型的集合。
1、数组的定义
int[]arr = {1,2,3,4} ;
int[]arr = new int[]{1,2,3,4};
int[]arr = new int[4];
2、数组的访问
int[]arr = new int[]{1,2,3,4};
arr[0] = 100; arr[5] = 100; //OutOfBoundsException越界访问
3、数组遍历
1)for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}
2) for each语句
for(int i:arr){
System.out.println(i); //i表示数组中的具体的值
}
3)System.out.println(Arrays.toString(arr));
4数组的拷贝(深拷贝、浅拷贝)
在Java中,允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组:
int[]arr = new int[]{1,2,3,4};
int[]brr = new int[4];
int []brr = arr; //赋值
深拷贝:For拷贝
1) int[] arr = new int[4]; //拷贝
int[] brr = new int[arr.length] ;
for(int i=0; i< arr.length; i++){
brr[i] = arr[i];
}
2) int[]brr ;
brr=arr.clone(); //克隆方法(C中的函数)
arr[0]=99;
System.out.println(brr[0]);
3) int[] arr = {1,2,3};
int[] brr = new int[arr.length] ;
brr = Arrays.copyOf(arr,arr.length);
4) int[] arr = {1,2,3};
int[] brr = new int[] {5,6,7};
System.out.println(arr,0,brr,0,arr.length);
5、数组扩容
1) int[] crr = new int[6]; //数组扩容
System.arraycopy(brr,srcPos:0,crr,destPos:3,brr.length);
System.arraycopy(arr,srcPos:0,brr,destPos:3,arr.length);//会产生越界异常,需要再开辟内存<加了上面两行>
2) brr=Arrays.copyOf(brr,new.Length:brr.length + 3);
6、数组排序
要想对数值型数组进行排序,可以使用Arrays类中的sort方法:
int[] a = new int[10000];
. . .
Arrays.sort(a);
这个方法使用了优化的快速排序算法。快速排序算法对于大多数数据集合来说都是效率比较高的。
public static void main(String args[]){
int a[] = {2,3,5,67,43,21,89,86,34,56};
Arrays.sort(a);
for(int b = 0;b < 10;b ++){
System.out.print(a[b] + "
}
}