LinkedList list=new LinkedList<>();
list.add("A");
list.add("B");
list.add(1, "666");
System.out.println(list);
输出
[A, 666, B]
但是 ,把a,b换成map
Map<String, String> map=new HashMap<>();
LinkedList<Map<String, String>> list=new LinkedList<>();
map.put("title", "1");
list.add(map);
map.put("title", "2");
list.add(map);
map.put("title", "666");
list.add(1, map);
System.out.println(list);
运行结果
[{title=666}, {title=666}, {title=666}]
并不是
1,666,2
为什么?
这个问题和LinkedList完全没关系。
HashMap的key是具有唯一性的,你三次put的时候key一样value是会被覆盖,所以add到list里的其实是同一个map
Map<String, String> map=new HashMap<>();
Map<String, String> map2=new HashMap<>();
Map<String, String> map3=new HashMap<>();
LinkedList<Map<String, String>> list=new LinkedList<>();
map.put("title", "1");
list.add(map);
map2.put("title", "2");
list.add(map2);
map3.put("title", "666");
list.add(1, map3);
System.out.println(list);
你是对的,麻烦大佬科普一下