Il n'y a pas de fonction intégrée pour obtenir la valeur maximale d'un Hashtable vous allez avoir à en boucle sur toutes les clés et de déterminer manuellement le max.
Edit: Pour trouver plus de touche 1 pour la valeur max
ArrayList<Object> maxKeys=newArrayList<Object>();Double maxValue =Double.MIN_VALUE;for(Map.Entry<Object,Double> entry : table.entrySet()){if(entry.getValue()> maxValue){
maxKeys.clear();/* New max remove all current keys */
maxKeys.add(entry.getKey());
maxValue = entry.getValue();}elseif(entry.getValue()== maxValue){
maxKeys.add(entry.getKey());}}
Puis-je savoir ce qui se passe si leurs sont les deux valeurs les plus élevées? ce que je suis supposé faire pour trouver à la fois des valeurs de clé? merci à l'avance cochez la case modifier pour gérer plusieurs touches avec la même valeur max
Si c'est vraiment important de le faire sans itération, toutes les touches, il suffit de prolonger HashTable
classMyHashtableextendsHashtable<Object,Double>{privateDouble maxValue =Double.MIN_VALUE;@OverridepublicsynchronizedDouble put(Object k,Double v){
maxValue =Math.max(maxValue, v);returnsuper.put(k, v);}@Overridepublicsynchronizedvoid clear(){super.clear();
maxValue =Double.MIN_VALUE;}publicDouble getMaxValue(){return maxValue;}@OverridepublicsynchronizedDouble remove(Object key){//TODO: Left as an Excercise for the user, refer the other answersreturnsuper.remove(key);}}
Puis-je savoir ce qui se passe si leurs sont les deux valeurs les plus élevées? ce que je suis supposé faire pour trouver les deux valeurs clés Ce trouve toutes les clés de remplacer l'ancienne valeur maximale. Avec votre jeu de test, il devrait avoir retourné 'c' et 'd' non 'b' et 'd'. votre algorithme/code donne la mauvaise réponse. @Twain249 dit, il trouve toutes les clés qui remplace l'ancienne valeur max. Il faut plutôt trouver une clé qui a valeur max ou toutes les clés qui ont leur valeur en tant que valeur max.
Il n'y a pas de fonction intégrée pour obtenir la valeur maximale d'un
Hashtable
vous allez avoir à en boucle sur toutes les clés et de déterminer manuellement le max.Edit: Pour trouver plus de touche 1 pour la valeur max
cochez la case modifier pour gérer plusieurs touches avec la même valeur max
OriginalL'auteur twain249
Si c'est vraiment important de le faire sans itération, toutes les touches, il suffit de prolonger
HashTable
OriginalL'auteur st0le
Vous pouvez parcourir et de trouver la valeur max:
OriginalL'auteur Pau Kiat Wee
Il n'y a pas de méthode de bibliothèque, mais vous pouvez faire comme ci-dessous
OriginalL'auteur Chandra Sekhar
il y a une importante Fourre-ya ici: Il pourrait y avoir plus d'une entrée avec la même MAX double valeur.
résultat: Tous les max les Touches : [b, d]
ce que je suis supposé faire pour trouver les deux valeurs clés
Ce trouve toutes les clés de remplacer l'ancienne valeur maximale. Avec votre jeu de test, il devrait avoir retourné 'c' et 'd' non 'b' et 'd'.
votre algorithme/code donne la mauvaise réponse. @Twain249 dit, il trouve toutes les clés qui remplace l'ancienne valeur max. Il faut plutôt trouver une clé qui a valeur max ou toutes les clés qui ont leur valeur en tant que valeur max.
OriginalL'auteur Michael