代码:

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的疑问的更多相关文章

  1. RxSwift 系列(四) -- Transforming Operators

    前言 本篇文章将要学习RxSwift中四种转换操作符: map flatMap flatMapLatest scan map 通过使用一个闭包函数将原来的Observable序列转换为一个新的Obse ...

  2. RxSwift 系列(四)

    前言 本篇文章将要学习RxSwift中四种转换操作符: map flatMap flatMapLatest scan map 通过使用一个闭包函数将原来的Observable序列转换为一个新的Obse ...

  3. MapReduce剖析笔记之五:Map与Reduce任务分配过程

    在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...

  4. sdut 487-3279【哈希查找,sscanf ,map】

    487-3279 Time Limit: 2000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 题目链接: sdut:   http://acm.sdut.ed ...

  5. map学习笔记

    collection是单列集合,map是双列集合.其中包含<k,v>键值对,注意:键具有唯一性,而值不唯一. 在此列举三个读取方式:keyset,valueset,及entryset. k ...

  6. Freemarker的初次使用之FTL标签嵌套与map的使用

    入职第二周了,在熟悉了公司自动化测试脚本的编写(使用什么数据库,使用哪种语言,框架带了哪些方法)后,现在开始熟悉模拟器,我们把请求发到服务器1,服务器1根据请求参数处理后将结果发给模拟器,模拟器根据服 ...

  7. shader复杂与深入:Normal Map(法线贴图)1

    转自:http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.htmlNormal Map法线贴图,想必每个学习计算机 ...

  8. Hadoop 中疑问解析

    Hadoop 中疑问解析 FAQ问题剖析 一.HDFS 文件备份与数据安全性分析1 HDFS 原理分析1.1 Hdfs master/slave模型 hdfs采用的是master/slave模型,一个 ...

  9. 给jdk写注释系列之jdk1.6容器(6)-HashSet源码解析&Map迭代器

    今天的主角是HashSet,Set是什么东东,当然也是一种java容器了.      现在再看到Hash心底里有没有会心一笑呢,这里不再赘述hash的概念原理等一大堆东西了(不懂得需要先回去看下Has ...

随机推荐

  1. 在iOS上增加手势锁屏、解锁功能

    在iOS上增加手势锁屏.解锁功能 在一些涉及个人隐私的场景下,尤其是当移动设备包含太多私密信息时,为用户的安全考虑是有必要的. 桌面版的QQ在很多年前就考虑到用户离开电脑后隐私泄露的危险,提供了“离开 ...

  2. How to configure connectingstrings in Web.config

    先来看一下默认的连接SQL Server数据库配置<connectionStrings>   <add name="LocalSqlServer" connect ...

  3. 一劳永逸让windows 64位操作系统 禁止强制驱动签名

    如何让WINDOWS7 64位直接加载“禁用强制驱动程序签名”方式启动  Windows Client 论坛 > Windows 7 问题 0 登录进行投票 因为开发需要,要装一台设备的驱动,但 ...

  4. hdu 3228 (最大流+二分)

    题意:一共有N个城市,一些城市里有金矿,一些城市里有仓库,金矿和仓库都有一个容量,有M条边,每条边是双向的,有一个权值,求将所有金矿里的储量都运送到仓库中,所需要经过的道路中,使最大的权值最小 思路: ...

  5. C语言实验——一元二次方程Ⅱ

    C语言实验--一元二次方程Ⅱ Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 169  Solved: 131 [Submit][Status][Web ...

  6. 【翻译】【中英对照】【企业库6】动手实验 Hands-On Lab 日志应用程序块索引页

    Logging Application Block Hands-On Lab for Enterprise Library 企业库的日志应用程序块动手实验 This walkthrough shoul ...

  7. bootstrap固定响应式导航

    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap. ...

  8. [爬虫]通过url获取连接地址中的数据

    1. 要想获取指定连接的数据,那么就得使用HtmlDocument对象,要想使用HtmlDocument对象就必需引用using HtmlAgilityPack; 2. 详细步骤如下:     步骤一 ...

  9. dict和set的使用

    使用dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子 ...

  10. linux命令: patch

    一. 针对单文件的patch: 我们以mkprj.sh.1和mkprj.sh两个文件为例: [root@localhost tst]# lsmkprj.sh.1  mkprj.sh 看两个文件的差异: ...