❶ 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就是相同的。