一维数组(八)

一、概念

存储同一种数据类型的多个元素的容器

二、格式

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、获取数据中的最大,小值

@Test
public 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、数组元素逆序

@Test
public 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、数组查表法(输入索引,查找对应数据)

@Test
public 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、数组元素查找(查找指定元素第一次在数组中出现的索引)

@Test
public 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;
}

posted @ 2020-12-15 03:49  我是一个大土豆  阅读(73)  评论(0)    收藏  举报