当前位置: 代码迷 >> Java Web开发 >> java中的List和Map里的有关问题
  详细解决方案

java中的List和Map里的有关问题

热度:10067   发布时间:2013-02-25 21:13:07.0
java中的List和Map里的问题
java中关于List和Map的问题 

标签: java, list, map 

public class test1 {

private Map mes;


public Map message() {
mes = new HashMap();
mes.put("yjh", "07201138");
return mes;
}

public static void main(String args[]) {

test1 t=new test1();
Map map=new HashMap();
map=t.message();
List l=new ArrayList();
l.add(map);
System.out.println(l.get(0));
map.put("d", l.get(0));
System.out.println(map.get("d"));

}

}

代码是这样的为什么我第二个 System.out.println(map.get("d"));打印出来的
会是{d=(this Map), yjh=07201138}而不是d={ yjh=07201138 }呢?
为什么会上这样的呢? 
Map不是键值对应吗?



------解决方案--------------------------------------------------------
因为l.add(map);
所以:l.get(0)是一HashMap
所以:map.put("d",一HashMap);
你再map.get("d")自然返回一HashMap,呵呵!
------解决方案--------------------------------------------------------
你放进的是什么,他返回就会是什么
第一次你打印的是一个list,这个list
里面的放的是一个map所以会是{yjh=07201138}
第二次你在map里面放进来一个map,并且这个map
而且还是他自己,
所以会这样.要不你再打印一下list.get(0),估计和map.put的
结果是一样的

------解决方案--------------------------------------------------------

List 同 Set 是继承至Collections 接口的
 
Map 提供Key value 的映射,Key 和 value 都不可以重复哦,
------解决方案--------------------------------------------------------
你的这个d={ yjh=07201138 };key,value在哪?
{d=(this Map), yjh=07201138};这个,key是d=(this Map),value是yjh=07201138,至于key是d=(this Map),因为你没有指定,jdk给你自动指定。呵呵!
  相关解决方案