我一直在搜索StackOverflow以获得有关此问题的答案。
假设我创建了两个数组列表,
arraylist1持有字符串 arraylist2持有整数。
注意 - 我在这两个arraylists中添加了东西。每个指数的值都与另一个值相关。
含义。让我们说arraylist1 =“Name”的索引1。 arraylist2 = 3的索引1,它们是相关的,因为我想将事物放入TreeMap(为了按键排序),以便树图放入值(“Name”,3)。
我的问题 -
TreeMap<String, Integer> mymap = new TreeMap<String, Integer>();
for(String s : arraylist1) {
for(Integer v : arraylist2) {
mymap.put(s, v);
问题是如果我添加了一堆随机的东西进行测试,
arraylist1.add("h");
arraylist1.add("i");
arraylist1.add("e");
arraylist2.add(1);
arraylist2.add(3);
arraylist2.add(2);
我做了for循环,我的结果将会出现......
Key e Value: 2
Key h Value: 2
Key i Value: 2
这解决了按键排序的问题。但是,问题是只有Integer arraylist中的最后一个值arraylist2被放入TreeMap中。
答案 0 :(得分:4)
您不想同时遍历两个列表 吗?
for (int i = 0; i < list.size(); i++) {
map.put(list1.get(i), list2.get(i));
}
就目前而言,您将为每个键迭代第二个映射,并插入第二个列表的值。由于地图每个键只保存一个值,因此地图会在每个键的第二个列表中生成最终值。
顺便说一句,如果这两个值是内在联系的,也许创建(或使用an existing)Pair
对象从一开始就存储它们。使用标准映射的问题是每个键只能存储一个值。例如您无法存储(A,B)
和(A,C)
答案 1 :(得分:0)
好吧,我在你删除它之前在你删除的问题中输入了这个,但是在你删除它之后没有完成:
我不确定我是否完全理解你的问题,但请考虑:
move(Piece piece, Position position)
方法,但需要参数。