我编写了下面的代码来使用JAVA中的TreeMap找出具有最大值(整数)的键(字符串)。
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");
}
}
maxprofitItem 方法获取以下参数作为参数。
传递成本值
{100,120,150,1000}
传递价格值
{110,110,200,2000}
传递销售值
{20,100,50,3}
传递项目值
{"电视","显卡","外接硬盘","显示器"}
该方法计算利润并将项目(Key)和利润(Value)放入TreeMap中。TreeMap如下所示。
键:监视器,值:3000
键:外部硬盘,值:2500
钥匙:电视,价值:200
TreeMap和HashMap以相同的方式放置键/值对组合。
有没有更好的方法使用 TreeMap 来找出与最大值相关的键,因为它在这方面的操作方式与 HashMap 相同。
提前致谢。