Obtención de clave asociada con el valor máximo correspondiente en un mapa (TreeMap / HashMap)

Escribí el siguiente código para descubrir la clave (String) que tiene el valor máximo (Integer) usando TreeMap en JAVA.

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");
    }
}

El método maxprofitItem obtiene los siguientes parámetros como argumentos.

Pase los valores de costos {100,120,150,1000} Pase los valores de precios {110,110,200,2000} Pase los valores de ventas {20,100,50,3} Pase los valores de los artículos {"TV", "Tarjeta gráfica", "Disco duro externo", " Monitor"}

El método calcula los beneficios y coloca los elementos (Clave) y los beneficios (Valor) en TreeMap. Y el TreeMap se ve a continuación.

Clave: Monitor, Valor: 3000

Clave: Disco duro externo, Valor: 2500

Clave: TV, Valor: 200

TreeMap y HashMap coloca la combinación de pares clave / valor de la misma manera. ¿Hay una mejor manera de usar TreeMap para encontrar la clave asociada con el valor máximo ya que funciona de la misma manera que HashMap en este sentido?

Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta