Java算法(四):index方法的实现 && 查找一个元素是否存在数组中,并且返回相应的结果(考虑重复的情况)

Java算法:(四)

文章目录

  • Java算法:(四)
    • 一、查找元素在数组中的索引
    • 二、考虑数组中有多个重复的情况

一、查找元素在数组中的索引

需求:

  1. 设计一个方法,查找元素在数组中的索引位置

  2. 已知一个数组 arr = {19, 28, 37, 46, 50};

  3. 键盘录入一个数据,查找该数据在数组中的索引

  4. 并在控制台输出找到的索引值。如果找不到,则输出 -1。

package com.liujintao.index;

import java.util.Scanner;

public class ArrayIndex {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 46, 50};
        int result = getArrayIndex(arr);
        System.out.println(result);
    }

    /**
     * 该方法的目的是完成数组索引的查找
     */

    public static int getArrayIndex(int[] arr) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数组元素");
        int indexNum = sc.nextInt();
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == indexNum) {
                return i;
            }
        }
        return -1;
    }
}

Java算法(四):index方法的实现 && 查找一个元素是否存在数组中,并且返回相应的结果(考虑重复的情况)_第1张图片

二、考虑数组中有多个重复的情况

需求:

  1. 设计一个方法,查找元素在数组中的索引位置(考虑多个相同的情况)

  2. 已知一个数组 int[] arr = {19, 28, 37, 46, 50, 28, 28, 19};

  3. 键盘录入一个数据,查找该数据在数组中的索引

  4. 并在控制台输出找到的索引值。如果找不到,则输出 -1。

package com.liujintao.index;

import java.util.Scanner;

public class ArrayIndex {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 46, 50, 28, 28, 19};
        int[] result = getArrayIndex(arr);
        // 如果返回的数组为 0 ,表示没有 返回-1, 如果有长度,则返回数组值(索引号)
        if (result.length == 0) {
            System.out.println(-1);
        } else {
            for (int i = 0; i < result.length; i++) {
                System.out.println(result[i]);
            }
        }
    }

    /**
     * 该方法的目的是完成数组索引的查找
     */

    public static int[] getArrayIndex(int[] arr) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数组元素:");
        // 1、统计相同数组元素的个数
        int indexNum = sc.nextInt();
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == indexNum) {
                count++;
            }
        }

        // 2、创建新数组,遍历查找相同的元素,存入新数组中
        int[] indexArr = new int[count];
        int a = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == indexNum) {
                // a :表示的是新数组的下标索引
                indexArr[a] = i;
                a++;
            }
        }

        // 3、将新数组返回给调用者
        return indexArr;

    }
}

结果示例
Java算法(四):index方法的实现 && 查找一个元素是否存在数组中,并且返回相应的结果(考虑重复的情况)_第2张图片

你可能感兴趣的:(java算法,java,算法,开发语言)