• Java的数组索引问题


    /*
    数组操作的两个常见小问题:
    ArrayIndexOutOfBoundsException:数组索引越界异常
    原因:你访问了不存在的索引。

    NullPointerException:空指针异常
    原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。

    作用:请自己把所有的场景Exception结尾的问题总结一下。以后遇到就记录下来。
    现象,原因,解决方案。
    */
    class ArrayDemo6 {
    public static void main(String[] args) {
    //定义数组
    int[] arr = {1,2,3};

    //System.out.println(arr[3]);

    //引用类型的常量:空常量 null
    arr = null;
    System.out.println(arr[0]);
    }
    }
    数组操作的两个常见小问题:
    检查数组中一个数出现过几次。
    需求:数组元素查找(查找指定元素第一次在数组中出现的索引)

    分析:
    A:定义一个数组,并静态初始化。
    B:写一个功能实现
    遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较
    如果相等,就返回当前的索引值。
    */
    class ArrayTest5 {
    public static void main(String[] args) {
    //定义一个数组,并静态初始化
    int[] arr = {200,250,38,888,444};

    //需求:我要查找250在这个数组中第一次出现的索引
    int index = getIndex(arr,250);
    System.out.println("250在数组中第一次出现的索引是:"+index);

    int index2 = getIndex2(arr,250);
    System.out.println("250在数组中第一次出现的索引是:"+index2);

    int index3 = getIndex2(arr,2500);
    System.out.println("2500在数组中第一次出现的索引是:"+index3);
    }

    /*
    需求:查找指定数据在数组中第一次出现的索引
    两个明确:
    返回值类型:int
    参数列表:int[] arr,int value
    */
    public static int getIndex(int[] arr,int value) {
    //遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较
    for(int x=0; x<arr.length; x++) {
    if(arr[x] == value) {
    //如果相等,就返回当前的索引值。
    return x;
    }
    }

    //目前的代码有一个小问题
    //就是假如我要查找的数据在数组中不存在,那就找不到,找不到,你就对应的返回吗?
    //所以报错。

    //只要是判断,就可能是false,所以大家要细心。


    //如果找不到数据,我们一般返回一个负数即可,而且是返回-1
    return -1;
    }

    public static int getIndex2(int[] arr,int value) {
    //定义一个索引
    int index = -1;

    //有就修改索引值
    for(int x=0; x<arr.length; x++) {
    if(arr[x] == value) {
    index = x;
    break;
    }
    }

    //返回index
    return index;
    }
    }

  • 相关阅读:
    Linux下的搜索查找命令的详解(locate)
    Linux下的搜索查找命令的详解(whereis)
    Linux下的搜索查找命令的详解(which)
    Linux下的awk文本分析命令实例(二)
    Linux下的awk文本分析命令实例(一)
    Linux下的awk文本分析命令详解
    Linux下的at定时执行任务命令详解
    六. 元素修改与空值处理
    七. 高级方法
    八. Pandas的轴
  • 原文地址:https://www.cnblogs.com/lszbk/p/12318597.html
Copyright © 2020-2023  润新知