【发布时间】:2017-05-23 16:54:08
【问题描述】:
一些奇怪的问题。 我有一个 for 循环,它从列表中获取抽奖号码并将它们成对排列。我想要一个可以存储巴黎和绘图编号的哈希图,所以;
有一个列表包含:1,2,3,4,5,6,7,8 for 循环从这里开始, 1:1和2 2:3和4 3:5和6 4:7和8
这就是我创造的;
List<Integer> numbers = new List<Integer>;
HashMap<Integer, <List<Integer>> parimap = new HashMap<Integer,<List<Integer>>;
for(int i=0; i<4; i++){
int firstinpair = numbers.get(0);
int secondinpair = numbers.get(1);
numbers.remove(0); //so it won't repeat
numbers.remove(0);
int pairnumber=i+1;
temporary.add(0,firstinpair);
temporary.add(0, secondinpair);
pairmap.put(pairnumber, temporary);
}
我得到的是:
{1=[5, 2, 6, 4, 8, 3, 1, 7], 2=[5, 2, 6, 4, 8, 3, 1, 7], 3=[5, 2, 6, 4, 8, 3, 1, 7], 4=[5, 2, 6, 4, 8, 3, 1, 7]}
我试过这样:
temporary.add(firstinpair);
temporary.add(secondinpair);
pairmap.put(pairnumber, temporary);
temporary.clear();
然后:
{1=[], 2=[], 3=[], 4=[]}
我不知道我做错了什么。 请帮忙!
【问题讨论】:
-
您只是在创建一个列表作为重复添加对该列表的引用。我建议为您要添加的地图的每个值创建一个列表。
-
感谢您的快速接受!
-
您能否为我的其他问题提供更多帮助(请参阅您的答案下方的评论)。谢了!
标签: java list for-loop hashmap