前提是:Map可以出现在k与v的映射中,v为null的情况, 所以containsKey出现更加必要!!
Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断,例如下面的例子。
下面的代码首先创建一个由HashMap类实现的Map集合,并依次向Map集合中添加一个值对象为null和“马先生”的映射;然后分别通过get()和containsKey()方法执行这两个键对象;最后执行一个不存在的键对象。关键代码如下:
<span style="font-size:18px;">import java.util.HashMap; import java.util.Map; public class TestMapKey { public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(220180, null); map.put(220181, "马先生"); System.out.println("get()方法的返回结果:"); System.out.print("------ " + map.get(220180)); System.out.print(" " + map.get(220181)); System.out.println(" " + map.get(220182)); System.out.println("containsKey()方法的返回结果:"); System.out.print("------ " + map.containsKey(220180)); System.out.print(" " + map.containsKey(220181)); System.out.println(" " + map.containsKey(220182)); } } </span>
执行上面的代码,在控制台将输出如下信息:
get()方法的返回结果:
------ null 马先生 null
containsKey()方法的返回结果:
------ true true false
结论:Map集合中不应该利用get()方法来判断是否存在某个键,因为可能map的key值存在但value的值为null
相关推荐
* containsKey(key) 判断MAP中是否含有指定KEY的元素 * containsValue(value) 判断MAP中是否含有指定VALUE的元素 * values() 获取MAP中所有VALUE的数组(ARRAY) * keys() 获取MAP中所有KEY的数组(ARRAY)
此文件是源代码,亲测有类似于java的Map对象的类似方法:put(key,value)、get(key)、keys()、values()、size()、isEmpty()、remove(key)、clear()、element(index)、containsKey(key)、containsValue(value)。...
Map接口概念 ...4. containsKey(Object key):判断Map中是否包含指定的键。 5. containsValue(Object value):判断Map中是否包含指定的值。 6. size():返回Map中键值对的数量。 7. keySet():返回一个包含Map
仿写的这个Map内包含的方法. containsKey(key) containsValue(value) get(key) put(key, value) remove(key) putAll(map:Map) size() isEmpty() values() keys() toString() 本人刚学AS发现...好像2.0只有Array ...
不废话了,直接贴代码了。 代码一: var map=new Map();...map.containsKey('kevin') //返回:false function Map() { this.keys = new Array(); this.data = new Object(); /** * 放入一个键值对 * @par
* containsKey(key) 判断MAP中是否含有指定KEY的元素 * containsValue(value) 判断MAP中是否含有指定VALUE的元素 * values() 获取MAP中所有VALUE的数组(ARRAY) * keys() 获取MAP中所有KEY的数组(ARRAY) ...
if(map.get(key) instanceof Object[]) { Object[] arr = (Object[])map.get(key); obj = request == null ? arr:(request.getParameter((String)key) == null ? arr:arr[0]); } else { obj = map.get(key); }...
Jquery Map Request DIV居中 Windows /** * MAP拥有JAVA HashMap函数基本特性 * @Attribute datas 数据源 * @Attribute size 数据长度 * @Function containsKey(key) 判断KEY是否存在 * @Function contains...
ConcurrentMap, Object> map = handlerMap.get(pushId); //关闭两个线程 ((OutHandler)map.get("error")).destroy(); ((OutHandler)map.get("info")).destroy(); System.out.println("停止命令-----end ...
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
String excelvalue = map.get(e.getName()).trim(); Object obj=null; DataType stued=new StuEducationImpl(); if(e.isForeign()){ String[] data=(String[])stued.dealDataType(e,excelvalue); obj=...
查找key使用containskey方法, 3 hashtable查询的的时间复杂度为O(1)可以使用put和get方法存储查询数据。List类使用add和get。 4 new HashMap<String>>(); 定义的这个数据结构中,如果每次都hashMap.put(string, ...
Map,Integer> tmp=new HashMap(); for(char c:arrs) { if(tmp.containsKey(c)) tmp.put(c,tmp.get(c)+1); else tmp.put(c,1); } Iterator<Character> it=arrs.iterator(); while (it.hasNext()) { ...
map.containsKey, map.put(a,b), map.get(a) 是关键方法 0002 第一个想法是我需要处理结转。 创建辅助函数以添加额外参数。 每次递归都会创建新的 ListNode 并使 myListNode.next 等于调用将返回 ListNode 的辅助...
插图5: containsKey()和containsValue()方法的使用 插图6:使用keySet()。iterator()迭代在HashMap上进行迭代 插图7:使用TreeMap对未排序的HashMap进行排序 关于项目 该项目包括样本NetBeans项目,该...
LeetCode判断字符串是否循环 LeeCode- Java 记录Leecode刷题思路与知识点 题目分类 Hash相关 题目描述: 给定一个整数数组 ...(map.containsKey(nums[i])) { return new int[]{map.get(nums[i]), i}; } map.p
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
public static void processTable(XWPFDocument doc, Map dataMap) { Iterator<XWPFTable> iter = doc.getTablesIterator(); while(iter.hasNext()) { XWPFTable table = iter.next(); List<XWPFTableRow> rows...
if (httpssessionmap.containsKey(userid)&&httpssessionmap.get(userid).equals(event.getSession())) { //userIds.remove(userid); httpssessionmap.remove(userid); if(u!=null && userid....
private Map, User> contactList; /** * robot list in cache */ private Map, RobotUser> robotList; private CallReceiver callReceiver; /** * 用来记录foreground Activity */ private List...