数组
定义
声明和创建
int[] nums;
int nums2[];
int[] arr = {1,2,4};
nums=new int[10];
nums2 = new int[]{1,2,3};
nums[0]=5;
System.out.println(nums[0]);
特点
- 大小固定,一旦被创建大小不再改变
- 数组中的元素类型必须相同
- 数组中的元素可以是任何数据类型中的一种(基本类型和引用类型)
- 数组变量属于引用类型,数组也是对象,数组元素相当于对象的成员变量数组对象本身存在堆中
- 通过.***length***获取数组长度
- 越界异常:ArrayIndexOutOfBoundsException:
Java的内存分析
- 方法区
- 堆:专门存放new出来的对象和数组
- 栈:存放变量的类型
数组的使用
- 普通for循环
- for-Each循环
- 数组作为方法参数
- 数组作为返回值
public static int[] convertArr(int[] arr){
int[] converArr=new int[arr.length];
for (int i = 0,j=arr.length-1; i < arr.length; i++,j--) {
converArr[i]=arr[j];
}
return converArr;
}
多维数组
int[][] arr={{1,2,3},{4,5,6},{7,8,9,1},{10,11,12}};
for (int i = 0; i < arr.length; i++) {
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
冒泡排序
int arr[]={1,3,5,7,5,5,2,9};
for (int i = 0; i < arr.length-1; i++) {
boolean flag=false;
for (int j = 0; j < arr.length-i-1; j++) {
if(arr[j+1]>arr[j]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
flag=true;
}
}
if (flag==false){
break;
}
}
System.out.println(Arrays.toString(arr));