代码如下:
Map map = new HashMap();
Map smap = new HashMap();
Set set = new HashSet();
for(int i = 0;i<4;i++){
smap.clear();
set.clear();
for(int j = 0;j<4;j++){ if(i == j){
set.add(j);
smap.put(j, set);
}
}
map.put(i, smap);
System.out.println(map);
}
输出结果:
{0={0=[0]}}
{0={1=[1]}, 1={1=[1]}}
{0={2=[2]}, 1={2=[2]}, 2={2=[2]}}
{0={3=[3]}, 1={3=[3]}, 2={3=[3]}, 3={3=[3]}}
我想要的结果:
{0={0=[0]}}
{0={0=[0]}, 1={1=[1]}}
{0={0=[0]}, 1={1=[1]}, 2={2=[2]}}
{0={0=[0]}, 1={1=[1]}, 2={2=[2]}, 3={3=[3]}}
请问 怎样修改代码,请贴出代码,谢谢
Map map = new HashMap();
Map smap = new HashMap();
Set set = new HashSet();
for(int i = 0;i<4;i++){
smap.clear();
set.clear();
for(int j = 0;j<4;j++){ if(i == j){
set.add(j);
smap.put(j, set);
}
}
map.put(i, smap);
System.out.println(map);
}
输出结果:
{0={0=[0]}}
{0={1=[1]}, 1={1=[1]}}
{0={2=[2]}, 1={2=[2]}, 2={2=[2]}}
{0={3=[3]}, 1={3=[3]}, 2={3=[3]}, 3={3=[3]}}
我想要的结果:
{0={0=[0]}}
{0={0=[0]}, 1={1=[1]}}
{0={0=[0]}, 1={1=[1]}, 2={2=[2]}}
{0={0=[0]}, 1={1=[1]}, 2={2=[2]}, 3={3=[3]}}
请问 怎样修改代码,请贴出代码,谢谢
解决方案 »
- JavaSwing排序动画源代码分享
- java.net.ConnectException: Connection timed out: connect
- HelloWorld没调试出来,同情一下
- 帮我看看一个简单的 Java图形程序设计 编码!
- 真诚求教!-高手看看这个java恢复SQL数据库的一个小小问题(解决给100)
- 请问java中有没有播放flash的控件之类的啊!~ 我想在JFame中播放flash动画!~ 请问怎么搞?
- 请问:关于线程的
- scjp: 关于类的初始化顺序
- 请问关于string类的问题,郁闷啊
- 用java做坦克大战小游戏的时候遇到了唯一的难题,求大神指教
- 应该是小问题,但是不知道为什么。。。。。
- SWT编程
Map smap = new HashMap();
Set set = new HashSet();
同时把原先的两句声明删除map在添加引用类型对象时,始终是一个的话,它的内容也会随之改变
不然同一个引用被你put来put去
最后对应的永远是同一个对象 Map map = new HashMap();
Map smap = null;
Set set = null;
for (int i = 0; i < 4; i++) {
smap = new HashMap();
set = new HashSet();
for (int j = 0; j < 4; j++) {
if (i == j) {
set.add(j);
smap.put(j, set);
}
}
map.put(i, smap);
System.out.println(map);
}