如何在ArrayList中找到最小值以及索引号?(JAVA)

use*_*496 54 java arraylist

我需要在Java中的arraylist中获取最小值的索引值.我的arraylist持有几个浮点数,我试图想出一种方法,我可以获得最小浮点数的索引号,这样我就可以在我的代码中的其他位置使用该索引号.我是初学者,所以请不要恨我.谢谢!

Mar*_*amy 95

您可以使用Collections.minList.indexOf:

int minIndex = list.indexOf(Collections.min(list));
Run Code Online (Sandbox Code Playgroud)

如果只想遍历列表一次(上面可能遍历两次):

public static <T extends Comparable<T>> int findMinIndex(final List<T> xs) {
    int minIndex;
    if (xs.isEmpty()) {
        minIndex = -1;
    } else {
        final ListIterator<T> itr = xs.listIterator();
        T min = itr.next(); // first element as the current minimum
        minIndex = itr.previousIndex();
        while (itr.hasNext()) {
            final T curr = itr.next();
            if (curr.compareTo(min) < 0) {
                min = curr;
                minIndex = itr.previousIndex();
            }
        }
    }
    return minIndex;
}
Run Code Online (Sandbox Code Playgroud)


GoZ*_*ner 13

这应该使用内置函数来完成.

public static int minIndex (ArrayList<Float> list) {
  return list.indexOf (Collections.min(list)); }
Run Code Online (Sandbox Code Playgroud)


Bla*_*ker 9

试试这个:

public int getIndexOfMin(List<Float> data) {
    float min = Float.MAX_VALUE;
    int index = -1;
    for (int i = 0; i < data.size(); i++) {
        Float f = data.get(i);
        if (Float.compare(f.floatValue(), min) < 0) {
            min = f.floatValue();
            index = i;
        }
    }
    return index;
}
Run Code Online (Sandbox Code Playgroud)


小智 6

有一种更简单的方法可以在数组列表中找到最小整数:

int min = array.get(0);
        for (int i : array){
            min = min < i ? min : i;
        }
Run Code Online (Sandbox Code Playgroud)

  • 那么指数呢? (2认同)