Java数组篇概括
发布时间:2021-11-15 11:45:19 所属栏目:PHP教程 来源:互联网
导读:数组 1、数组:存储同一种数据类型的多个元素的容器。 2、特点:每一个元素都有编号,从0开始,最大编号是长度-1。编号的专业叫法:索引 3、定义格式 3.1):数据类型[] 数组名; 3.2):数据类型 数组名[]; 推荐是用A方式,B方法就忘了吧。但是要能看懂 4、数组
数组 1、数组:存储同一种数据类型的多个元素的容器。 2、特点:每一个元素都有编号,从0开始,最大编号是长度-1。编号的专业叫法:索引 3、定义格式 3.1):数据类型[] 数组名; 3.2):数据类型 数组名[]; 推荐是用A方式,B方法就忘了吧。但是要能看懂 4、数组的初始化 4.1)动态初始化 只给长度,系统给出默认值 举例:int[] arr = new int[3]; 4.2)静态初始化 给出值,系统决定长度 举例:int[] arr = new int[]{1,2,3}; 简化版:int[] arr = {1,2,3}; 5、Java的内存分配 栈 存储局部变量 堆 存储所有new出来的 方法区(面向对象部分详细讲解) 本地方法区(系统相关) 寄存器(CPU使用) 内存图: 注意: a:局部变量 在方法定义中或者方法声明上定义的变量。 b:栈内存和堆内存的区别 栈:数据使用完毕,就消失。 堆:每一个new出来的东西都有地址 每一个变量都有默认值 byte,short,int,long 0 float,double 0.0 char 'u0000' boolean false 引用类型 null 数据使用完毕后,在垃圾回收器空闲的时候回收。 6、数组内存图 一个数组 二个数组 C:三个数组(两个栈变量指向同一个堆内存) 7、数组遍历案例: 7.1)遍历: //方式1: public static void printArray(int[] arr) { for(int x=0; x<arr.length; x++) { System.out.println(arr[x]); } } //方式2: public static void printArray(int[] arr) { System.out.print("["); for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { System.out.println(arr[x]+"]"); }else { System.out.println(arr[x]+", "); } } } 7.2)最值 //最大值: publicstatic int getMax(int[] arr) { int max = arr[0]; for(int x=1; x<arr.length; x++) { if(arr[x] > max) { max = arr[x]; } } return max; } //最小值: public static int getMin(int[] arr) { int min = arr[0]; for(int x=1; x<arr.length; x++) { if(arr[x] < min) { min = arr[x]; } } return min; } 7.3)逆序 //方式1: public static void reverse(int[] arr) { for(int x=0; x<arr.length/2; x++) { int temp = arr[x]; arr[x] = arr[arr.length-1-x]; arr[arr.length-1-x] = temp; } } //方式2: public static void reverse(int[] arr) { for(int start=0,end=arr.length-1; start<=end; start++,end--) { int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } } 7.4)基本查找 //方式1: public static int getIndex(int[] arr,int value) { for(int x=0; x<arr.length; x++) { if(arr[x] == value) { return x; } } return -1; } //方式2: public static int getIndex(int[] arr,int value) { int index = -1; for(int x=0; x<arr.length; x++) { if(arr[x] == value) { index = x; break; } } return index; } 7.5)查表: public static String getString(String[] strArray,int index) { return strArray[index]; } 7.6)键盘录入成绩数组案例: import java.util.Scanner; class TestArr1 { public static void main(String[] args) { Scanner s = new Scanner(System.in); double [] scores = new double[5]; double sum = 0; double avg = 0; double min = 100; double max = 0; for(int i = 0;i<scores.length;i++){ scores[i]=s.nextDouble(); } for(int i = 0;i<scores.length;i++){ sum += scores[i]; if(scores[i]<min){ min = scores[i]; } if(scores[i]>max){ max = scores[i]; } } avg = sum/scores.length; System.out.println("平均成绩:"+avg+",最低成绩:"+min+",最高成绩:"+max); } } 二维数组 2.1)元素是一维数组的数组。 2.2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}}; D:数据类型[][] 数组名 = {{...},{...},{...}}; 2.3)遍历案例 import java.util.Scanner; class TestArr { public static void main(String[] args) { /* int[][] arr = {{1,2,3},{2,3,4},{3,4,5}}; int[][] _arr = {}; int[][] arr1 = new int[3][2]; int[][] _arr1 = new int[][]{{1,2,3},{2,3,4},{3,4,5}}; int [][] arr2 = new int[3][]; arr2[0] = new int[]{1,2,3}; arr2[1] = new int[]{2,3,4}; arr2[2] = new int[]{5,6,7}; //int[][][] arr3 = new int[5][6][6]; //遍历二维数组的多有元素 //一层循环是遍历二维中的所有一维数组 for(int i = 0;i<arr2.length;i++){ //二层循环遍历一维数组中的所有元素 for(int j = 0;j<arr2[i].length;j++){ System.out.print(arr2[i][j]+"t"); } System.out.println(); } */ //定义一个长度为3的二维数组,里面有3个长度为3的一维数组 //向里面添加数字, //1 2 3 //4 5 6 //7 8 9 Scanner s = new Scanner(System.in); int n = s.nextInt(); int[][] arr = new int[n][n]; int number = 1; for(int i = 0;i<arr.length;i++){ for(int j = 0;j<arr[i].length;j++){ arr[i][j] = number; number++; } } 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(); } } } 2.4)索引案例: class Test24_2 { public static void main(String[] args) { int [] arr = new int[]{2,3,4,45,66,7,4}; int maxNumber = Integer.MIN_VALUE; int minNumber = Integer.MAX_VALUE; int maxIndex = 0; int minIndex = 0; for(int i = 0;i<arr.length;i++){ if(arr[i]>maxNumber){ maxNumber = arr[i]; maxIndex = i; } if(arr[i]<minNumber){ minNumber = arr[i]; minIndex = i; } } System.out.println("最大:"+maxNumber+"索引是:"+maxIndex+",最小:"+minNumber); } } ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |