Java: Trouver la valeur la plus élevée dans un tableau
Pour quelque raison que ce code est en cours d'impression trois valeurs pour la valeur la plus élevée dans le tableau lorsque j'essaie d'imprimer un seul (qui est de 11,3). Quelqu'un peut-il m'expliquer pourquoi il fait cela?
Grâce.
import java.util.Scanner;
public class Slide24
{
public static void main (String [] args)
{
Scanner in = new Scanner(System.in);
double[] decMax = { -2.8, -8.8, 2.3, 7.9, 4.1, -1.4, 11.3, 10.4,
8.9, 8.1, 5.8, 5.9, 7.8, 4.9, 5.7, -0.9, -0.4, 7.3, 8.3, 6.5, 9.2,
3.5, 3, 1.1, 6.5, 5.1, -1.2, -5.1, 2, 5.2, 2.1};
double total = 0, avgMax = 0;
for (int counter = 0; counter < decMax.length; counter++)
{
total += decMax[counter];
}
avgMax = total / decMax.length;
System.out.printf("%s %2.2f\n", "The average maximum temperature for December was: ", avgMax);
//finds the highest value
double max = decMax[0];
for (int counter = 1; counter < decMax.length; counter++)
{
if (decMax[counter] > max)
{
max = decMax[counter];
System.out.println("The highest maximum for the December is: " + max);
}
}
}
}
- Les Collections.max(arrayList).toInt()
Vous devez vous connecter pour publier un commentaire.
C'est l'impression d'un nombre à chaque fois qu'il en trouve une qui est plus élevé que le courant max (qui arrive à se produire trois fois dans votre cas.) Déplacer l'impression à l'extérieur de la boucle for et vous devriez être bon.
Pour trouver le maximum (max) ou plus bas (min) à partir d'un tableau, cela pourrait vous donner la bonne direction. Voici un exemple de code pour obtenir la valeur la plus élevée à partir d'une primitive de tableau.
Méthode 1:
}
Pour obtenir la valeur la plus basse, vous pouvez utiliser
Méthode 2:
Maintenant la ligne suivante devrait fonctionner.
Vous devez imprimer le max après vous ai scanné tous:
Même comme suggéré par d'autres, le simple fait de mentionner le moyen le plus propre de le faire:
Si vous cherchez le moyen le plus rapide et le plus simple pour effectuer diverses actions en ce qui concerne les tableaux, l'utilisation des Collections de la classe est très utile (documentation disponible à partir de https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html), des actions varie de trouver le maximum, le minimum, le tri, l'ordre inverse, etc.
Un moyen simple de trouver la valeur maximale de la matrice avec l'utilisation des Collections:
Si vous êtes intéressé à trouver la valeur minimale, semblable à trouver maximale:
Le plus simple ligne pour trier la liste:
Ou l'utilisation des Tableaux de classe pour trier un tableau:
Cependant, les Tableaux de la classe n'a pas une méthode qui fait référence à la valeur maximale directement, en faisant le tri et en se référant à la dernière, l'indice de la valeur maximale, cependant, gardez à l'esprit de tri par les 2 méthodes a une complexité de O(n log n).
Une courte solution pour avoir la valeur max de la gamme:
Vous avez votre print() instruction dans le
for()
boucle, Il devrait être après, de sorte qu'il imprime seulement une fois. la façon dont il l'est actuellement, à chaque fois que le max des changements qu'il imprime unemax
.Vous êtes juste de Comparer zéro de l'élément avec le reste des éléments de sorte qu'il imprime la valeur de la dernière plus grande valeur qu'il contiendra, dans votre cas, même problème qui se passe. Pour comparer chaque et tous les éléments que nous avons pour permuter les valeurs comme:
Espère que cela va vous aider à
Vous pouvez utiliser une fonction qui accepte un tableau et trouve le max de valeur en elle. je l'ai fait générique, de sorte qu'il pourrait également accepter d'autres types de données
Façon la plus simple que j'ai trouvé, prend en charge toutes les versions d'android
Un moyen facile sans l'aide de collections
Si vous ne voulez pas utiliser de java prédéfinis bibliothèques ci-dessous est la
façon la plus simple