一维数组(八)

一、概念

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

二、格式
  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  我是一个大土豆  阅读(65)  评论(0编辑  收藏  举报