如何从散列图中减去两个值后返回最小差异的键?从散列表中减去两个值后返回最小差异的关键?
例
first loop -> 10 - 8 = 2;
second loop -> 10 - 9 = 1;
third loop -> 10 - 7 = 3;
therefore second loop -> 10 - 9 = 1 is the smallest, so the key is "Three".
代码
import java.util.HashMap;
public class Difference {
HashMap<String,Double> hashMap = new HashMap<>();
double firstValue = 0;
double secondValue = 0;
double difference = 0;
public Difference() {
hashMap.put("One", 10.0);
hashMap.put("Two", 8.0);
hashMap.put("Three", 9.0);
hashMap.put("Four", 7.0);
firstValue = hashMap.get("One");
for (String key : hashMap.keySet()) {
if(!key.equals("One")) {
secondValue = hashMap.get(key);
difference = Math.abs(secondValue - firstValue);
}
}
}
public static void main(String[] args) {
new Difference();
}
}
请帮助。谢谢。
你的问题可能是因为你不喜欢你应该比较字符串。使用'key.equals(“One”);'而不是'=='。让我知道如果这有助于我可以关闭你的问题。 – Maroun
另外请注意,您没有将“差异”与先前的结果进行比较,因此最终结果将是最后一次迭代中的最后一次差异。 – Maroun
@MarounMaroun我知道。这就是为什么我要问如何从迭代中获得最小的差异,并且我改变了!= to!key.equals(“One”) –