java中对于嵌套map,如何循环赋值?如图的bug有什么解决方法

public static void main(String[] args) {

Map<Integer,HashMap<Integer, Integer>> ve=new HashMap<Integer,HashMap<Integer, Integer>>();

HashMap<Integer, Integer> tmp=new HashMap<Integer, Integer>();

int j=0;int i;

for(j=0;j<3;j++)

{

for(i=0;i<3;i++)

{

tmp.put(i, j);

}

ve.put(j, tmp);

System.out.println("******");

Tf_Idf.printHM(ve);

}

}
结果为:
******

0 -- {0=0, 1=0, 2=0}

******

0 -- {0=1, 1=1, 2=1}

1 -- {0=1, 1=1, 2=1}

******

0 -- {0=2, 1=2, 2=2}

1 -- {0=2, 1=2, 2=2}

2 -- {0=2, 1=2, 2=2}
每一次都会被覆盖成最后一次操作的tmp

第1个回答  2016-04-13
可以分开,我帮你写一个,发不出来 public class Test {public static void main(String[] args) {List list = new ArrayList();int a = 1;int b = 2;String key = "";String value = "";for (int i = 0; i < 50; i++) {HashMap map = new HashM
java,嵌套,map,循环,赋值
可以分开,我帮你写一个,发不出来 public class Test {public static void main(String[] args) {List list = new ArrayList();int a = 1;int b = 2;String key = "";String value = "";for (int i = 0; i < 50; i++) {HashMap map = new HashM追问

额。。不懂

本回答被网友采纳
第2个回答  2016-04-13
图太清晰。。。看不清追问

添加了补充问题,十分感谢

相似回答