数组的特征:
* 1.定义数组必须指定大小 int[] a=new int[2];
* 2.数组的每一个元素的内存都是连续的
* 3.数组的随机访问操作,是一个常量时间 arr[index],根据数组下标找到该数
* 4.每一个数组都内置了一个成员变量 length,表示数组的总长度(0~length-1)
* 5.数组增加元素,涉及增加位置后面的所有元素都要进行移动,所以该操作花费的是时间线性时间
* 6.数组删除元素,涉及增加位置后面的所有元素都要进行移动,所以该操作花费的是时间线性时间
* 7.数组的元素查找花费时间为线性时间,依次遍历
二维数组的内存分析:
public class Array { public static void main(String[] args) { //声明定义数组的三种形式 int[] a=new int[2]; int[] b={2,3,4}; int[] c=new int[]{2,3,5}; // 向数组a[]输入数据,并求和 Scanner s=new Scanner(System.in); int sum=0; for(int i=0;i<a.length;i++){ a[i]=s.nextInt(); sum=sum+a[i]; System.out.print(a[i]+" "); } System.out.println("sum:"+sum); //遍历一位数组 System.out.println(Arrays.toString(b)); //二维数组的声明及定义 int[][] a1=new int[2][3]; int[][] a2=new int[][]{{2,5},{3,7}}; int[][] a3={{1,2,3},{4,5,6}}; //双重for循环打印出二维数组的值 for(int i=0;i<a2.length;i++){ for (int j=0;j<a2[i].length;j++){ System.out.print(a2[i][j]+" "); } } //deepToString方法 遍历二维数组 System.out.print(Arrays.deepToString(a2)); } }
练习1:
/**
* 定义一个定义一个有100个元素的数组 2.每一个元素存放200-300之间的数据3.打印偶数
*/
/** * 定义一个定义一个有8个元素的数组 2.每一个元素存放200-300之间的数据3.打印偶数 */ int arr[] = new int[8]; /* 数组特征:定义数组必须指定大小,每一个元素的内存都是连续的,数组的访问时间操作是一个常量时间 */ for (int i = 0; i < 8; i++) { arr[i] = (int) ((Math.random() * 100) + 200); } for (int i = 0; i < arr.length; i++) { if (arr[i] % 2 == 0) { // Arrays.sort(arr); System.out.println(arr[i]); } }