JAVA中map中存储list集合问题。

public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<String, List<String>>();
List<String> list = new ArrayList<String>(); //01 创建一个list对象
map.put("1", list); //02 放入map中
list.add("java"); // 03 往list中添加元素
List<String> list02 =new ArrayList<String>();
list02=map.get("1"); //04 取出map中的list付给list02
System.out.println(list02.get(0)); // 05 打印出java
}

02我是先往map中添加空的list, 03再操作list, 04取出来的list为什么是操作之后的?

这个没什么问题啊,map中放的是list的一个引用,等它取出list再赋给另一个list,同样也是给了个引用地址,等输出的时候再去内存单元中找值,发现有值就输出来。
附:所以list不管是什么时候加东西进去,其他对象有引用到它的都一样有值
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-08-18
因为map添加list是对list的引用,相当于传址!明白传值和传址的区别,你就可以明白

JAVA中map中存储list集合问题。
这个没什么问题啊,map中放的是list的一个引用,等它取出list再赋给另一个list,同样也是给了个引用地址,等输出的时候再去内存单元中找值,发现有值就输出来。附:所以list不管是什么时候加东西进去,其他对象有引用到它的都一样有值

java中,下面的List怎么放入map里面,求高手!
然后你要用Map里的东西,可以使用map.get(1)这种形式获取,他和list.get(1); 相等都为“c”。另外建议初始化Map和List的时候,定义好所存的数据类型。List<String> list = new ArrayList<String>();Map<Integer, String> map = new HashMap<Integer, String>();...

深入理解Java中的List、Set与Map集合
Java中的List、Set、Map是三种常见的集合类型,它们在数据存储和处理方面具有不同的特点和用途。首先,List和Set都是基于接口的集合类型,而Map则是一个实现接口的类。List和Set的主要区别在于元素是否允许重复。List允许元素重复,而Set不允许。此外,Set中的元素是无序的,而List中的元素是有序的。在L...

java的List集合里面放了Map,List<Map<String,Object>>,如何判定人名相同...
public class Test2 {public static void main(String[] args) {Map<String, String> map1 = new MyMap<>();map1.put("name", "张三");map1.put("公司", "腾讯");Map<String, String> map2 = new MyMap<>();map2.put("name", "李四");map2.put("公司", "阿里");Map<Strin...

java中list里面存放map,根据map中的某两个个字段进行排序
用Collections.sort(List list, Comparator c)实现一个Comparator即可 public class MyComparator implements Comparator { public int compare(Object o1, Object o2) { Map m1=(Map)o1, m2=(Map)o2;\/\/从m1与m2取字段值然后比较,大于返回1,等于返回0,小于返回-1 } public boolean equals(Object ...

java中list里面存放map,根据map中的某两个个字段进行排序
list是存放单独的元素的,而map集合存放的是键值和对应的映射关系 你是不能单纯的把map存入list中的,你是想把map的键存入list吗?还是存放值,异或着是存放他的映射关系?

Java List和Map的问题?
地址不变,在任意地方将value的值进行改变,那么所有get(key)出来的值就跟着改变了。利用HashMap的这个特性,可以在类和类之间设计变量池,将多个类之间共享的变量放到同一个HashMap中,类与类之间的方法调用参数使用这个变量池,这样只要变量池里某个变量的值在一个类中发生了改变,其他类再get这个变量...

List,Set,Map三者的区别?
Java中的List、Set和Map都是重要的集合类型,它们分别代表列表、集合和映射,虽然都可以存储对象,但它们的底层数据结构和用途存在差异。List是一个有序集合,允许存储重复元素,ArrayList和LinkedList是List接口的两个实现类。ArrayList基于数组实现,随机访问速度快,但插入和删除元素时需要移动其他元素,速度较...

java用map把list中首字母相同的单词放在一起
可以放在一起的放在一起的方法有;1. 先创建一个list集合来存放map对象,然后在创建几个map对象来设置值2.对map对象进行值的设置,然后把它添加到list中3.创建一个resultMap的对象用来存最终结果4.因为map的可以是set集合所以不会重复,就可以这样设置把所以出现在list中map的key值都设置到resultMap对象...

java中,如何把一个list集合里的值当作key,另一个list集合里的值当作valu...
假设两个list大小相同:int size=keyList.size();for(int i=0;i<size;i++){ map.put(keyList.get(i),valueList.get(i)); }

相似回答