简体   繁体   English

如果值在数组中,如何返回索引?

[英]How to return index if value is in array?

I don't know how to return index if a value is found in an array and how to return -1 if it isnt found.如果在数组中找到值,我不知道如何返回索引,如果未找到则如何返回 -1。 I've tried this, but it doesn't work.我试过这个,但它不起作用。 Could someone help me?有人可以帮助我吗? Thanks in advance!提前致谢!

import java.util.Scanner;

public class NM {
    public static void main(String[] args) {

        int[] arraynm = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        Scanner sc = new Scanner(System.in);

        System.out.print("Enter a number: ");
        int num = sc.nextInt();

        boolean match = false;

        for (int i = 0; i < arraynm.length; i++) {

            if (num == arraynm[i]) {
                match = true;
                return index;
                break;
            }
        }
        if(!match) {
            return -1;
        }
    }

You can have a method like this你可以有这样的方法

 public int indexInArray(final int value, final int[] arr) {
    for (int i = 0; i < arr.length; i++) {
        if (value == arr[i]) {
            return i;
        }
    }
    return -1;
}

or you can use streams或者你可以使用流

int index = IntStream.range(0, arraynm.length).filter(i -> num == arraynm[i]).findFirst().orElse(-1);

您可以通过这样做返回。

java.util.Arrays.asList(arraynm).indexOf(num);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM