list,map的疑问
代码:
package com.wyl; import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; public class aaa {
public static void main(String[] args) {
// location 1
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Map<String,Object> map = new HashMap<String,Object>();
String a = "23";
System.out.println(a);
for(int i=0;i<10;i++){
//location 2
// Map<String,Object> map = new HashMap<String,Object>();
map.put("age", "xiaoming:"+i);
System.out.println("=========:"+i);
list.add(map);
}
Iterator it = list.iterator();
while(it.hasNext()){
Map m = (Map)it.next();
String age = (String) m.get("age");
System.out.println("age:"+age);
}
}
}
分别在location1和location2出实例化出map,打印出来的数值就是不一样。
问题应该处在list上:
下面是一个list的Demo:
package com.wyl; import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; public class listDemo {
public static void main(String[] args) {
List list = new ArrayList<String>();
Map map = new HashMap<String, Object>();
map.put("age", 234);
map.put("name", "小明");
list.add(map);
Iterator it2 = list.iterator();
while(it2.hasNext()){
System.out.println("the first:"+it2.next());
}
System.out.println("======================"+list.size());
map.put("we", "wyl");
list.add(map);
System.out.println("list.size:"+list.size());
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println("the next:"+it.next());//诡异的的事情发生了
}
System.out.println(map.size());
}
}
打印结果:
the first:{name=小明, age=234}
======================1
list.size:2
the next:{name=小明, age=234, we=wyl}
the next:{name=小明, age=234, we=wyl}
3
自己多试了几遍,应该跟Java的值传递相关的基础知识有关,下面是listDemo02:
package com.wyl; import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; public class listDemo2 {
public static void main(String[] args) {
Map<String,Object> map = new HashMap<String,Object>();
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
map.put("name", "夏末");
map.put("age", 26);
list.add(map);
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println("the first:"+it.next()+"====");//诡异的的事情发生了
}
map.put("age", 30);//修改年岁
Iterator it2 = list.iterator();//迭代出list的内容
if(it2.hasNext()){
System.out.println("the next :"+it2.next());//这个跟Java的值传递有关
System.out.println("list的size():"+list.size());
}else{
System.out.println("==========");
} }
}
打印结果:
the first:{age=26, name=夏末}====
the next :{age=30, name=夏末}
list的size():1
list,map的疑问的更多相关文章
- RxSwift 系列(四) -- Transforming Operators
前言 本篇文章将要学习RxSwift中四种转换操作符: map flatMap flatMapLatest scan map 通过使用一个闭包函数将原来的Observable序列转换为一个新的Obse ...
- RxSwift 系列(四)
前言 本篇文章将要学习RxSwift中四种转换操作符: map flatMap flatMapLatest scan map 通过使用一个闭包函数将原来的Observable序列转换为一个新的Obse ...
- MapReduce剖析笔记之五:Map与Reduce任务分配过程
在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...
- sdut 487-3279【哈希查找,sscanf ,map】
487-3279 Time Limit: 2000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 题目链接: sdut: http://acm.sdut.ed ...
- map学习笔记
collection是单列集合,map是双列集合.其中包含<k,v>键值对,注意:键具有唯一性,而值不唯一. 在此列举三个读取方式:keyset,valueset,及entryset. k ...
- Freemarker的初次使用之FTL标签嵌套与map的使用
入职第二周了,在熟悉了公司自动化测试脚本的编写(使用什么数据库,使用哪种语言,框架带了哪些方法)后,现在开始熟悉模拟器,我们把请求发到服务器1,服务器1根据请求参数处理后将结果发给模拟器,模拟器根据服 ...
- shader复杂与深入:Normal Map(法线贴图)1
转自:http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.htmlNormal Map法线贴图,想必每个学习计算机 ...
- Hadoop 中疑问解析
Hadoop 中疑问解析 FAQ问题剖析 一.HDFS 文件备份与数据安全性分析1 HDFS 原理分析1.1 Hdfs master/slave模型 hdfs采用的是master/slave模型,一个 ...
- 给jdk写注释系列之jdk1.6容器(6)-HashSet源码解析&Map迭代器
今天的主角是HashSet,Set是什么东东,当然也是一种java容器了. 现在再看到Hash心底里有没有会心一笑呢,这里不再赘述hash的概念原理等一大堆东西了(不懂得需要先回去看下Has ...
随机推荐
- 在iOS上增加手势锁屏、解锁功能
在iOS上增加手势锁屏.解锁功能 在一些涉及个人隐私的场景下,尤其是当移动设备包含太多私密信息时,为用户的安全考虑是有必要的. 桌面版的QQ在很多年前就考虑到用户离开电脑后隐私泄露的危险,提供了“离开 ...
- How to configure connectingstrings in Web.config
先来看一下默认的连接SQL Server数据库配置<connectionStrings> <add name="LocalSqlServer" connect ...
- 一劳永逸让windows 64位操作系统 禁止强制驱动签名
如何让WINDOWS7 64位直接加载“禁用强制驱动程序签名”方式启动 Windows Client 论坛 > Windows 7 问题 0 登录进行投票 因为开发需要,要装一台设备的驱动,但 ...
- hdu 3228 (最大流+二分)
题意:一共有N个城市,一些城市里有金矿,一些城市里有仓库,金矿和仓库都有一个容量,有M条边,每条边是双向的,有一个权值,求将所有金矿里的储量都运送到仓库中,所需要经过的道路中,使最大的权值最小 思路: ...
- C语言实验——一元二次方程Ⅱ
C语言实验--一元二次方程Ⅱ Time Limit: 1 Sec Memory Limit: 64 MB Submit: 169 Solved: 131 [Submit][Status][Web ...
- 【翻译】【中英对照】【企业库6】动手实验 Hands-On Lab 日志应用程序块索引页
Logging Application Block Hands-On Lab for Enterprise Library 企业库的日志应用程序块动手实验 This walkthrough shoul ...
- bootstrap固定响应式导航
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap. ...
- [爬虫]通过url获取连接地址中的数据
1. 要想获取指定连接的数据,那么就得使用HtmlDocument对象,要想使用HtmlDocument对象就必需引用using HtmlAgilityPack; 2. 详细步骤如下: 步骤一 ...
- dict和set的使用
使用dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子 ...
- linux命令: patch
一. 针对单文件的patch: 我们以mkprj.sh.1和mkprj.sh两个文件为例: [root@localhost tst]# lsmkprj.sh.1 mkprj.sh 看两个文件的差异: ...