Potrzebuję uzyskać wartość indeksu minimalnej wartości w mojej liście tablicowej w Javie. Moja lista tablicowa zawiera kilka elementów pływających i próbuję wymyślić sposób, w jaki mogę uzyskać numer indeksu najmniejszego elementu pływającego, aby móc użyć tego numeru indeksu w innym miejscu kodu. Jestem początkującym, więc proszę, nie nienawidźcie mnie. Dzięki!Jak znaleźć minimalną wartość w tablicy ArrayList wraz z numerem indeksu? (Java)
Odpowiedz
Można użyć Collections.min i List.indexOf:
int minIndex = list.indexOf(Collections.min(list));
Jeśli chcesz przechodzić na liście tylko raz (powyżej mogą przemierzać go dwa razy):
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;
}
Twoje rozwiązanie wciąż czegoś nie ma! Co się stanie, jeśli numer min jest obecny kilka razy? To przecież lista. Myślę więc, że powinieneś zwrócić listę, jeśli indeksy dla wartości minimalnej –
@AdelBoutros. Jeśli tego chce OP, to rozwiązanie może być traktowane jako punkt wyjścia i ulepszone. –
@MarimuthuMadasamy Dzięki, bro .. jesteś bohaterem .., master maind –
spróbuj tego:
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;
}
"Float.compare (f.floatValue(), min) <0" można zmienić na 'f
@ Dukeling, masz na myśli f <= min? – BlackJoker
Nie, mam na myśli 'f
Powinno to zrobić za pomocą wbudowanych funkcji.
public static int minIndex (ArrayList<Float> list) {
return list.indexOf (Collections.min(list)); }
Musisz przemierzać całą tablicę i utrzymać dwie wartości pomocnicze:
- Minimalna wartość można znaleźć (na drodze ku końcowi)
- Indeks miejscu, gdzie znaleziono wartość minimalna:
Załóżmy, że twoja tablica nazywa się myArray. Na końcu tego kodu minIndex ma indeks o najmniejszej wartości.
var min = Number.MAX_VALUE; //the largest number possible in JavaScript
var minIndex = -1;
for (int i=0; i<myArray.length; i++){
if (myArray[i] < min){
min = myArray[i];
minIndex = i;
}
}
Zakłada to najgorszy scenariusz: całkowicie losową tablicę. Jest to algorytm O (n) lub algorytm n, co oznacza, że jeśli masz w swojej macierzy elementy n, musisz spojrzeć na wszystkie z nich zanim poznasz swoją odpowiedź. Algorytmy O (n) są najgorsze, ponieważ zajmują dużo czasu, aby rozwiązać problem.
Jeśli twoja macierz jest posortowana lub ma jakąś inną określoną strukturę, algorytm można zoptymalizować tak, aby był szybszy.
Powiedziawszy to, chyba że masz ogromną liczbę tysięcy wartości, nie martw się o optymalizację, ponieważ różnica między algorytmem O (n) i szybszym nie byłaby zauważalna.
Jest łatwiejszy sposób znaleźć min całkowitą w liście tablicy:
int min = array.get(0);
for (int i : array){
min = min < i ? min : i;
}
A co z indeksem? – dedek
- 1. znaleźć minimalną wartość w tablicy pływaków
- 2. Znalezienie klucza minimalną wartość w tablicy asocjacyjnej
- 3. Błąd składni tablicy Java ArrayList
- 4. Uzyskaj maksymalną i minimalną wartość z tablicy w JavaScript
- 5. Jak znaleźć maksymalną i minimalną wartość w tablicy liczb całkowitych w Perlu?
- 6. Jak usunąć obiekt z tablicy ArrayList w języku Java?
- 7. Uzyskaj minimalną wartość z tablicy zawierającej wartości puste
- 8. Sortowanie tablicy alfabetycznie z numerem
- 9. Jak znaleźć obiekt w tablicy ArrayList według właściwości
- 10. Znajdź maksymalną i minimalną wartość każdej kolumny, a następnie znaleźć maksymalną i minimalną wartość każdego wiersza
- 11. Znajdź minimalną niezerową wartość w macierzy
- 12. Jak usunąć elementy sekwencyjne z Java ArrayList?
- 13. Jak utworzyć ArrayList z tablicy w PowerShell?
- 14. Jak znaleźć minimalną klucz w słowniku
- 15. Jak dodać obiekt do tablicy ArrayList w języku Java
- 16. Java: sortowanie ArrayList w miejscu
- 17. Znajdź maksymalną/minimalną wartość w pętli for
- 18. ArrayList z zwróconym indeksem na wartość dodaną
- 19. Jak zmienić wartość indeksu w NSArray
- 20. Dodawanie do ArrayList Java
- 21. Java: ArrayList sznurka tablic
- 22. Java ArrayList w C++
- 23. Przekształcanie tablicy Java ArrayList ciągów w tablicę JavaScript
- 24. Konwersja tablicy String do ArrayList
- 25. Jak mogę znaleźć numer indeksu obiektu, który wepchnęłam do tablicy?
- 26. Jak użyć łańcucha jako ścieżki indeksu tablicy, aby pobrać wartość?
- 27. Jak zapisać wartość wyliczenia w tablicy?
- 28. Wartość indeksu powrotnego z metody filtru javascript
- 29. Konwertowanie ArrayList na Array w java
- 30. MongoDB: znaleźć wartość w tablicy z wieloma kryteriami
myślę, że wybraliśmy rozwiązanie jest niekompletne. wciąż czegoś brakuje! Co się stanie, jeśli numer min jest obecny kilka razy? To przecież lista. Myślę więc, że powinien zwrócić listę, jeśli indeksy dla wartości minimalnej –