java HashMap存值巧遇,key不同但是却覆盖了之前的值

情况是这样的

一个空的HashMap testHM;

testHM.put("a","123");

testHM.put("b","456");

testHM.put("a.c","789");

 

取testHM的size是3,正确。

取里面的值,只剩下两个"b","456"  和"a.c","789"

这时候再取testHM.get("a");已经取不到了。

 

后来发现,是因为testHM.put("a.c","789");把之前的 a 的key给覆盖了。

 

testHM.put("a.c","789"); 改为testHM.put("a_c","789");就好了。

 

这是什么情况?

 

天真

 

 

 

 

### 回答1: 可以使用HashMapkeySet()方法获取HashMap所有的key,例如: HashMap<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("orange", 3); Set<String> keys = map.keySet(); for (String key : keys) { System.out.println(key); } 输出结果为: apple banana orange ### 回答2: 在 Java HashMap 是一种基于键对的数据结构,其每个键对都通过哈希算法将键映射到唯一的上。要获取 HashMap key ,可以使用 keySet() 方法或者 entrySet() 方法。 1. keySet() 方法 这个方法返回一个 Set 集合,其包含 HashMap 所有的 key 。使用这个方法的语法如下: HashMap<K, V> map = new HashMap<>(); Set<K> keys = map.keySet(); 在这个例子keys 包含了 HashMap 所有的 key 。 2. entrySet() 方法 这个方法返回一个 Set 集合,其包含 HashMap 所有的键对。然后,可以遍历这个 Set 集合,使用 getKey() 方法获取所有的 key 。这个方法的语法如下: HashMap<K, V> map = new HashMap<>(); Set<Map.Entry<K, V>> entrySet = map.entrySet(); for (Map.Entry<K, V> entry : entrySet) { K key = entry.getKey(); } 在这个例子key 包含了 HashMap 所有的 key 。 总结 使用 keySet() 和 entrySet() 方法都可以获取 HashMap key ,但是建议使用 keySet() 方法,因为它更加简洁、高效。另外,如果需要同时获取 key 和 value,那么可以使用 entrySet() 方法。 ### 回答3: HashMapJava常见的一种数据结构,它用于维护键对关系。其key代表的是唯一的键名,而value则是对应的。 那么,如何获取HashMapkey呢? Java,我们可以通过以下三种方法来获取HashMapkey: 1.遍历HashMapkeySet()方法 keySet()方法返回的是一个包含HashMap所有key的集合。我们可以遍历这个集合来获取HashMap的所有key。示例如下: ```java HashMap<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); for (String key : map.keySet()) { System.out.println(key); } ``` 上述代码输出三个key"a"、"b"、"c"。 2.遍历HashMap的entrySet()方法 entrySet()方法返回的是一个包含HashMap所有键对的集合。我们可以使用这个方法来获取HashMap的所有key。示例如下: ```java HashMap<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); System.out.println(key); } ``` 上述代码输出三个key"a"、"b"、"c"。 3.使用HashMap的get()方法 get()方法可以根据指定的key来获取HashMap对应的value。如果我们只需要获取HashMapkey,可以通过指定任意一个value来获取对应的key。示例如下: ```java HashMap<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); for (Integer value : map.values()) { String key = null; for (Map.Entry<String, Integer> entry : map.entrySet()) { if (entry.getValue().equals(value)) { key = entry.getKey(); break; } } System.out.println(key); } ``` 上述代码输出三个key"a"、"b"、"c"。 综上所述,Java获取HashMapkey有多种方法,我们可以根据具体的情况选择不同的方法来获取所需的key
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值