簡體   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