Java复制HashMap时如何将浮点键转换为整数键?

Sha*_*ala 0 java hashmap type-conversion

你好 Stack Overflow 社区,

我在使用 Java 的 HashMap 时遇到了挑战。我有两个 HashMap,map1 和 map2,其中 map1 具有 Float 类型的键,map2 具有 Integer 类型的键。现在,我需要将条目从map1复制到map2。

import java.util.Map;
import java.util.HashMap;

public class Q9 {
    public static void main(String[] args) {
        Map<Float, String> map1 = new HashMap<>();
        Map<Integer, String> map2 = new HashMap<>();

        // Adding entries to map1
        map1.put(11.1f, "black");
        map1.put(12.1f, "brown");
        map1.put(13.1f, "Grey");
        map1.put(14.1f, "blue");

        // Now, I want to copy the entries from map1 to map2 with Integer keys
        // map2.putAll(map1); // This line gives a compilation error due to key type mismatch

        // How can I convert the Float keys from map1 to Integer keys to successfully copy entries to map2?

    }
}
Run Code Online (Sandbox Code Playgroud)

我希望获得有关如何将键从浮点转换为整数的指导,以便我可以成功地将条目从map1复制到map2。任何见解、代码示例或最佳实践都非常有价值。

谢谢您的帮助!

Maj*_*awi 5

您可以在将键更改为 后迭代map1并插入每个条目:map2Integer

for(Map.Entry<Float, String> entry : map1.entrySet()) 
  map2.put(entry.getKey().intValue(), entry.getValue()); 
Run Code Online (Sandbox Code Playgroud)