Je dois obtenir la valeur d'index de la valeur minimale dans mon répertoire en Java. MON arraylist a plusieurs flottants, et j'essaie de penser à un moyen d'obtenir le numéro d'index du plus petit flottant afin de pouvoir utiliser ce numéro ailleurs dans mon code. Je suis débutant, alors ne me déteste pas s'il te plaît. Merci!
Vous pouvez utiliser Collections.min et List.indexOf :
int minIndex = list.indexOf(Collections.min(list));
Si vous souhaitez parcourir la liste une seule fois (les éléments ci-dessus peuvent la parcourir deux fois):
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;
}
Cela devrait le faire en utilisant des fonctions intégrées.
public static int minIndex (ArrayList<Float> list) {
return list.indexOf (Collections.min(list)); }
essaye ça:
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;
}
Il existe un moyen plus simple de rechercher un entier min dans la liste de tableaux:
int min = array.get(0);
for (int i : array){
min = min < i ? min : i;
}
Voici ce que je fais. Je trouve le minimum en premier, puis après avoir trouvé le minimum, il est supprimé de ArrayList.
ArrayList<Integer> a = new ArrayList<>();
a.add(3);
a.add(6);
a.add(2);
a.add(5);
while (a.size() > 0) {
int min = 1000;
for (int b:a) {
if (b < min)
min = b;
}
System.out.println("minimum: " + min);
System.out.println("index of min: " + a.indexOf((Integer) min));
a.remove((Integer) min);
}