一维数组(八)
一、概念
存储同一种数据类型的多个元素的容器
二、格式
1、数据类型[] 数据名;--int []a:定义一个int类型的数组a变量 2、数据类型 数据名[];--int a []:定义一个int类型的a数据变量 注意:效果可以认为是一样的,都是定义一个int数组,但是念法上有些小区别,推荐使用一种
三、数组初始化
1、概念:就是为数据开辟内存空间,并为每个数组元素赋予值
2、初始化方式
动态初始化:指定长度,有系统给出初始化值:数据类型[]数组名=new数据类型[数组长度] int []arr=new int[3] 静态初始化:给出初始化,由系统决定长度:数据类型[]数据名=new 数据类型[]{元素1,元素2...}-->数据类型[]数据名={元素1,元素2...} int []arr=new int[]{1,2,3};--->简化后:int []arr={1,2,3};
3、获取数组中的元素
A、数组名[索引]:索引就是每个元素的编号,从0开始,最大索引是数组长度-1
4、常见问题
A、ArrayIndexOutOfBoundsException:数组索引越界异常-->访问了不存在的索引 B、NullPointerException:空指针异常-->数组已经不在指向堆内存了。而你还用数组名去访问元素
四、Java中的内存分配

五、练习
1、遍历数组
int [] arr={11,22,33,44,55}; for(int i =0;i<arr.length;i ){ System.out.println(arr[i]); }
2、获取数据中的最大,小值
@Testpublic void test1(){ int[] arr = {34,98,10,25,67}; System.out.println(getMax(arr)); System.out.println(getMin(arr));}public static int getMin(int []arr){ int min=arr[0]; for (int i = 1; i < arr.length; i ) { if(min>arr[i]){ min=arr[i]; } } return min;}public static int getMax(int []arr){ int max =arr[0]; for (int i = 1; i <arr.length ; i ) { if(max<arr[i]){ max=arr[i]; } } return max;}
3、数组元素逆序
@Testpublic void test1(){ int[] arr = {34,98,10,25,67}; reverse2(arr); printArr(arr); }public static void reverse2(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; }}public static void reverse(int [] arr){ for (int i = 0; i <arr.length/2 ; i ) { int temp=arr[i]; arr[i]=arr[arr.length-1-i]; arr[arr.length-1-i]=temp; }}public static void printArr(int []arr){ System.out.print("["); for (int i = 0; i <arr.length ; i ) { if (i==arr.length-1){ System.out.println(arr[i] "]"); }else { System.out.print(arr[i] ","); } }}
4、数组查表法(输入索引,查找对应数据)
@Testpublic void test1(){ int[] arr = {34,98,10,25,67}; int index=1; for(int i=0;i<arr.length;i ){ if(arr[index]==arr[i]){ System.out.println(arr[index]); } }}
5、数组元素查找(查找指定元素第一次在数组中出现的索引)
@Testpublic void test1(){ int[] arr = {34,98,10,25,67}; System.out.println(getIndex(arr,98));}public static int getIndex(int[]arr,int value){ int index=-1; for (int i = 0; i < arr.length; i ) { if(arr[i]==value){ index=i; break; } } return index;}
赞 (0)