代码:

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. uncompyle2 windows安装和使用方法

    uncompyle2是Python 2.7的反编译工具,它可以把python生成的pyo.pyc字节码文件反编译为十分完美的源码,并可以将反编译后的源码再次生成字节码文件! ----- 本文介绍在wi ...

  2. scrapy写爬虫是出现no module named win32api错误

    windows下利用scrapy(python2.7)写爬虫,运行 scrapy crawl dmoz 命令时提示:exceptions.ImportError: No module named wi ...

  3. 基于MAVEN的SSM+ehcache+c3p0

    目录结构: 2.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...

  4. c#读写共享内存操作函数封装

    原文 c#读写共享内存操作函数封装 c#共享内存操作相对c++共享内存操作来说原理是一样,但是c#会显得有点复杂. 现把昨天封装的读写共享内存封装的函数记录下来,一方面希望给需要这块的有点帮助,另一方 ...

  5. nodejs--express开发个人博客(2)

    上一部分已经实现了视图的雏形,现在加上逻辑操作. 登陆.注册.文章发表都需要用到数据库的数据存取,用的比较多的就是mongodb了. MongoDB 是一个对象数据库,它没有表.行等概念,也没有固定的 ...

  6. ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复

    1.创建一个实验用的表空间并在此表空间上创建表 create tablespace blocktest datafile '/u01/oradata/bys1/blocktest.dbf' size ...

  7. Sicily-1153 解题报告

    一.原题中文大意. 1      2       3      4       5      6         7     8 9     10       11    12      13    ...

  8. 看java源代码

    不会看JDK源代码,相当于没学过Java. 网上不容易找到一篇帮助我解决了如何在Eclipse下查看JDK源代码 的文章. 核心提示:在Eclipse中查看JDK类库的源代码!!! 设置: 1.点 w ...

  9. lua协程并发下载简单测试

    下载8个1m大小文件,测试五次分别耗时12.038s,10.316s,8.955s,11.275s,9.499s(lua代码实现如下) require "socket" --hos ...

  10. python 面试相关

    python单例模式: Python真的需要单例模式吗?我指像其他编程语言中的单例模式. 答案是:不需要!  因为,Python有模块(module),最pythonic的单例典范.模块在在一个应用程 ...