Erhalten eines Schlüssels, der dem entsprechenden Maximalwert in einer Map zugeordnet ist (TreeMap / HashMap)

Ich habe den folgenden Code geschrieben, um mithilfe von TreeMap in JAVA den Schlüssel (String) mit dem Maximalwert (Integer) zu ermitteln.

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.

Pass die Kostenwerte {100,120,150,1000} Pass die Preiswerte {110,110,200,2000} Pass die Verkaufswerte {20,100,50,3} Pass die Artikelwerte {"TV", "Grafikkarte", "Externe Festplatte", "Monitor"

Die Methode berechnet die Gewinne und fügt die Elemente (Schlüssel) und Gewinne (Wert) in TreeMap ein. Und die TreeMap sieht wie folgt aus.

Key: Monitor, Wert: 3000

Key: Externe Festplatte, Wert: 2500

Key: TV, Value: 200

it @TreeMap und HashMap wird die Kombination aus Schlüssel und Wertepaar auf die gleiche Weise erstellt. Gibt es eine bessere Möglichkeit, TreeMap inorder zu verwenden, um den Schlüssel zu ermitteln, der mit dem Maximalwert verknüpft ist, da er in dieser Hinsicht auf die gleiche Weise wie HashMap funktioniert?

Danke im Voraus

Antworten auf die Frage(4)

Ihre Antwort auf die Frage