繁体   English   中英

Java Varargs:查找数组中数字的索引

[英]Java Varargs: find index of a number in array

我试图在数组中找到一个数字的索引。 我正在使用可变参数方法。 我的任务是找到最少的数字,然后找到他的 position。

    public static void main(String[] args) {

        System.out.println(minimum(2.4, 4.5, -11.3, 3.9, -7.2, -12.1, 14.8));
    }
    public static double minimum(double... n) {
        int k = 0;
        double min = n[k];

        for (double i : n) {
            k++;
            if (i < min) {
                min = i;
            }
            if (min == n[k - 1]) {
                System.out.println("minimum number index is " + (k - 1));
            }
        }
        return min;

结果是这样的

index of minimum: 0
index of minimum: 2
index of minimum: 5
-12.1

当我将 System.out.print 放在 for 循环之外时,打印 k 的最后一个值。 先感谢您。

希望这可以帮助。 只需将最小索引保存在变量中,就像存储最小值一样。

public static double minimum(double... n) {
    int k = 0;
    double min = n[k];
    minIndex = k;

    for (double i : n) {
        k++;
        if (i < min) {
            min = i;
            minIndex = k-1;
        }
    }
    System.out.println("minimum number index is " + (minIndex));
    return min;
}

你快到了!

正如您正确认识到的那样,您的变量k包含您在 for 循环中查看的双精度数的index + 1

如果你想保留数组中最小值的索引,你需要做与变量min相同的事情。 您需要一个在循环外初始化的附加变量。 当您在数组中找到新的“较小值”时,将k-1存储在此变量中。

当您退出 for 循环时,该变量将保存数组中最小值的索引。

暂无
暂无

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

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