Ich habe den folgenden Code geschrieben, um den Schlüssel (String), der den maximalen Wert (Integer) mit TreeMap in JAVA hat.Bekommen Schlüssel mit entsprechenden maximalen Wert in einer Karte (TreeMap/HashMap)
public static void maxprofitItem(int[] costs, int[] prices, int[] sales,String[] items) {
TreeMap<String,Integer>map=new TreeMap<String,Integer>();
int[] profits=new int[items.length];
int maxvalue;
for(int i=0;i<items.length;i++){
profits[i]=sales[i]*prices[i]-costs[i]*sales[i];
if(profits[i]>0){
map.put(items[i],profits[i]);
}
}
Set setOfKeys = map.keySet();
Iterator iterator = setOfKeys.iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
Integer value = (Integer)map.get(key);
System.out.println("Key: "+ key+", Value: "+ value);
}
if(!map.isEmpty()){
System.out.println("The maximum value is "+(Collections.max(map.values())));
System.out.println("And it is for");
maxvalue=Collections.max(map.values());
for (Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue()==maxvalue) {
System.out.println(entry.getKey());
break;
}
}
}
else{
System.out.println("There are no profits in this sale");
}
}
Die Methode maxprofitItem ruft die folgenden Parameter als Argumente ab.
belasten die Kosten Werte {100,120,150,1000} Preise Pass Werte {110,110,200,2000} Pass die Verkaufswerte {20,100,50,3} die Elemente Pass Werte { "TV",“ Grafikkarte, externe Festplatte, Monitor
Die Methode berechnet die Gewinne und legt die Elemente (Schlüssel) und Gewinne (Value) in TreeMap.Und die TreeMap sieht wie folgt aus.
Key: Monitor, Wert: 3000
Key: Externe Festplatte, Wert: 2500
Key: TV, Wert: 200
TreeMap und HashMap legt die Schlüssel/Wert-Paar-Kombination in die gleiche Art und Weise. Gibt es eine bessere Möglichkeit, TreeMap zu verwenden, um den Schlüssel zu ermitteln, der mit dem Maximalwert verknüpft ist, da er in dieser Hinsicht wie HashMap funktioniert.
Vielen Dank im Voraus.
Ja, das war mein question.I unter Verwendung treemap anders für das oben beschriebene Szenario wissen wollte, ist der Schlüssel zu dem größten Wert erhalten. – nikthecamel