zoukankan      html  css  js  c++  java
  • 一维数组(八)

    一、概念

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

    二、格式
      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;
    }
  • 相关阅读:
    前端小tite(随笔)
    算法两数之和 python版
    常用标签
    pip install 遇到的问题
    不常用的模块
    约束和约束关系
    Django初识
    前端—Bootstrap
    前端—jQuery
    前端—BOM和DOM
  • 原文地址:https://www.cnblogs.com/liangfzh/p/14136610.html
Copyright © 2011-2022 走看看