map中的list获取不到 博客分类: base base
程序员文章站
2024-03-17 21:03:58
...
前天在做一个cs的项目的时候,把一个list存入到map中,但是非常奇葩的是,我存进去后死活就是取不出来,还以为map不是同一个map的原因,单例也用上了,直到两三个小时之后,终于发现是什么原因了:原来我的键值是Integer类型,在取的时候传过来参数是String类型的,结果一迷糊就直接拿String来取了,而存的时候是用Integer类型来存的,真是粗心撒。这里就做了一个小demo来mark一下。
下面是输出的结果:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test { public static void main(String[] args){ Map<Integer,List<String>> strMap = new HashMap<Integer,List<String>>(); Integer key = Integer.valueOf(1); String keyStr = "1"; List list = new ArrayList(); list.add("hello"); // 放入map strMap.put(key, list); // 取出list,键为String类型,存的时候为Integer类型 List getList = strMap.get(keyStr); p("getList is null: "; + (getList == null)); // 取出list,键为Integer类型 List gList = strMap.get(key); p("gList is null: " + (gList == null)); } public static void p(String str){ System.out.println(str); } }
下面是输出的结果:
getList is null: true gList is null: false