Comment trouver la valeur minimale dans un ArrayList, avec le numéro d’index? (Java)

Je dois obtenir la valeur d’index de la valeur minimale dans mon arraylist en Java. Mon arraylist contient plusieurs flotteurs, et j’essaie de trouver un moyen d’obtenir le numéro d’index du plus petit flottant afin que je puisse utiliser ce numéro d’index ailleurs dans mon code. Je suis débutant, alors ne me déteste pas. 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 (ce qui précède peut le parcourir deux fois):

 public static > int findMinIndex(final List xs) { int minIndex; if (xs.isEmpty()) { minIndex = -1; } else { final ListIterator 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 list) { return list.indexOf (Collections.min(list)); } 

essaye ça:

 public int getIndexOfMin(List 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 trouver un entier minimum dans la liste des tableaux:

 int min = array.get(0); for (int i : array){ min = min < i ? min : i; } 

Vous devez parcourir tout le tableau et conserver deux valeurs auxiliaires:

  • La valeur minimale que vous trouvez (sur le chemin de la fin)
  • L’index de l’endroit où vous avez trouvé la valeur min

Supposons que votre tableau s’appelle myArray . À la fin de ce code, minIndex a l’index de la plus petite valeur.

 var min = Number.MAX_VALUE; //the largest number possible in JavaScript var minIndex = -1; for (int i=0; i 

Cela suppose le pire scénario: un tableau totalement aléatoire. C'est un algorithme O (n) ou un algorithme d' ordre n , ce qui signifie que si vous avez n éléments dans votre tableau, alors vous devez tous les regarder avant de connaître votre réponse. Les algorithmes O (n) sont les pires car ils prennent beaucoup de temps pour résoudre le problème.

Si votre tableau est sortingé ou possède une autre structure spécifique, l'algorithme peut être optimisé pour être plus rapide.

Cela dit, à moins que vous n'ayez un énorme nombre de milliers de valeurs, ne vous inquiétez pas de l'optimisation, car la différence entre un algorithme O (n) et un algorithme plus rapide ne serait pas perceptible.