1:数组的概念?有什么特点? 数组是一个容器用来存储同种类型的数据的集合,它既可以存储基本数据类型也可以存储应用数据类型 特点是:数组的长度是固定的,不可伸缩,所存储的数据的类型都是基本数据类型,被存储的元素必须先声明它的元素类型 数组中有一个属性可以直接获取数组元素的个数:length 2:一维数组的定义格式? int[] arr = new int[]; int[] arr = new int[]{1,56,56}; int[] arr = {6,8,7}; int arr[] = new int[]; 3:数组操作的两个小问题 角标越界 ArrayindexoutofboundsException; 数组指向为空 nullpointerException; 4:数组常见操作: 数组遍历(依次输出数组中的每一个元素) int [] arr = new int[] {5,56,9,5}; for (int x = 0; x < arr.length -1 ; x++ ) { System.out.println(arr[x]); } 数组获取最值(获取数组中的最大值最小值) int [] arr = new int [] {3,38,8,3} int max = arr[0]; for (int x = 1; x < arr.length -1 ; x++ ) { if (arr[x] > max) { max = arr[x]; } } System.out.println(max); 数组元素逆序 (就是把元素对调 int [] arr new int [] {8,9,7,6,}; for (int x = 0; x < arr.length / 2; x++ ) { for ( int y = 0; y < arr.length - 1; y++ ) { int temp = arr[y]; arr[y] = arr[arr.leng - 1]; arr[arr.length - 1] = temp; } } 数组查表法(根据键盘录入索引,查找对应星期) import java.util.Scanner; class XingQi { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个数:"); int a = sc.nextInt(); searchWeek(a); } public static void searchWeek(int a) { String[] str = new String[]{" ","星期一","星期二","星期三","星期四","星期五","星期六","星期日"}; for ( int = x; x < str.length - 1; x++ ) { if (a == x) { System.out.println("今天是:"+str[x]); } } } } --------------------------------------------- import java.util.Scanner; class XingQi { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个1-7数:"); int week = sc.nextInt(); System.out.println("星期"+searchWeek(week)); } public static char searchWeek(int week) { char[] ch = new char[]{ ' ','一','二','三','四','五','六','日'}; return ch[week]; } } 数组元素查找(查找指定元素第一次在数组中出现的索引) class Search { public static void main(String[] args) { int arr = {56,89,6,67,45,34}; int index = searchWeiZhi(arr,67); System.out.println(index); } public static int searchWeiZhi(int[] arr, int value) { for (int x = 0; x < arr.length - 1; x++ ) { if (arr[x] == value) { return x; } } return -1; } } class Search { public static void main(String[] args) { int[] arr = {56,89,6,67,45,34}; int index = searchWeiZhi( arr,67); System.out.println(index); } public static int searchWeiZhi(int[] arr ,int value) { for (int x = 0; x < arr.length - 1; x++ ) { if (arr[x] == value) { return x; } } return -1; } } 5:二维数组定义格式? int[][] arr = new int[][]; 动态开辟空间 int[][] arr = {{},{},{},{},{}}; 静态开辟空间,也是推荐格式 int[][] arr = new int[][]{{},{},{},{}}; 特殊格式:int[] arr[] = new int[][] 不推荐用,因为有人看不懂 看懂针对每种格式的内存图解? 6:案例 A:二维数组遍历 B:公司年销售额求和 某公司按照季度和月份统计的数据如下:单位(万元) 第一季度:22,66,44 第二季度:77,33,88 第三季度:25,45,65 第四季度:11,66,99 /* 需求:公司四个季度销售额求和 思路:一个季度三个月,那么四个季度就是四个三个,应用二位数组来存储四个一维数组 定义一个和sum,用来累加求和,二维数组累加求和就是嵌套循环 步骤:先定义一个类class,然后入口主函数main,定义一个二维数组,for for 潜逃循环 sum+=arr[]; 打印销售总和 */ class TongJi { public static void main(String[] args){ int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}}; int sum = 0; for (int i = 0; i < arr.length; i++ ) { for (int j = 0; j < arr[i].length; j++ ) { sum += arr[i][j]; } } System.out.println(sum); } } 7:参数传递问题 java中没有真正意义的引用传递,基本类型的变量作为参数传递过来的是变量的值,引用类型的变量作为参数传递的是变量的内存地址,我们对变量的操作其实是根据内层地址对内存中的对象的操作 |