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

Java Varargs: find index of a number in array

我正在尝试查找数组中数字的索引。我正在使用可变参数方法。 我的任务是找到最小的数字然后找到他的位置。

    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 循环时,该变量将保存数组中最小值的索引。