Search code examples
javaarraysindexingvariadic-functions

Java Varargs: find index of a number in array


I am trying to find an index of a number in array. I am using varargs method. My task was to find minimum of numbers and then find his 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;

Outcome is this

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

When i put System.out.print outside of for loop printing last value for k. Thank you in advance.


Solution

  • Hope this helps. Just got to keep the min index in a variable just like storing min value.

    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;
    }