❶ java的map的containsKey方法是如何實現的不是也要遍歷map裡面的key才能知道是否包含嗎
containsKey 判斷map中有沒有包含這個key值, 它的實現方式請查看以下源碼:
/**
* Implements Map.get and related methods
*
* @param hash hash for key
* @param key the key
* @return the node, or null if none
*/
final Node<K,V> getNode(int hash, Object key) {
Node<K,V>[] tab; Node<K,V> first, e; int n; K k;
if ((tab = table) != null && (n = tab.length) > 0 &&
(first = tab[(n - 1) & hash]) != null) {
if (first.hash == hash && // always check first node
((k = first.key) == key || (key != null && key.equals(k))))
return first;
if ((e = first.next) != null) {
if (first instanceof TreeNode)
return ((TreeNode<K,V>)first).getTreeNode(hash, key);
do {
if (e.hash == hash &&
((k = e.key) == key || (key != null && key.equals(k))))
return e;
} while ((e = e.next) != null);
}
}
return null;
}
❷ java map 判斷有沒有key
String key="keyname";
boolean flag=map.containsKey(key);
❸ 如何判斷map中是否有某個key
java 中有時候會遇到判斷傳過來的map里是否包含了指定的key,我目前只發現兩種辦法:
一種是:
HashMap map = new HashMap();
map.put("1", "value1");
map.put("2", "value2");
Iterator keys = map.keySet().iterator();
while(keys.hasNext()){
String key = (String)keys.next();
if("2".equals(key)){
System.out.println("存在key");
}
}
第二種:
boolean flag=map.containsKey("opt")
❹ 怎麼判斷key是否在map中存在java
map.containsKey 判斷是否存在key ,建議常常看java API文檔.
❺ java map key可以重復嗎
如果重復添加的話,hashmap會自動覆蓋key一樣的數據,保證一個key對應一個value
也就是說,你只要把一個map2里的數據按照key一個一個都加到map1里去就行了,但是這樣會破壞map1
如果是想保持原來的不變,可以先新建一個空的hashmap,把map1和map2的數據都加進去就可以了
HashMap map3 = new HashMap();
for (Object key : map1.keySet())
map3.put(key, map1.get(key));
for (Object key : map2.keySet())
map3.put(key, map2.get(key));
可以根據具體的類型加上泛型模板
分享
❻ java中如何使用map存取數據
java中使用map存取數據的方法如下:
1、需要指定其中的K,V;k=keyv=value。
❼ Java:如何判斷一個Map中的某個key是否在另一個Map的key列表中
Map<T> map2 = new HashMap<T>();
boolean flag = map2.containsKey(Object key);可以看到一個map集合中是否包含特定的key
❽ java map的key可以重復嗎
不可以,map是無序的,它的查詢需要通過key的值來查找,如果你定義兩個同樣的key,那麼一個key就對應了多個值,這樣就違背了java對map的定義,鍵和值是一一對應的。所以key不可以重復
❾ java map中如何判斷key是否相同
key,存儲的是一個對象的引用,只要兩個引用指向同一個內存地址,那麼這兩個key就是相同的。