2013-09-26 138 views
0
List<Map.Entry<Integer,Integer>> openTimes = new ArrayList<Map.Entry<Integer,Integer>>(); 

for (int i=0; i<_elem.size(); i++) 
{ 
    openTimes.add(i,_elem.get(i)); 
} 

如何正确添加元素到列表中openTimes将元素添加到列表<Map.Entry <Integer,Integer >>

+0

你是什么意思? –

+0

openTimes.add(新条目(???)) –

+0

你想做什么?为什么要在条目本身中存储条目的列表索引?这完全没用! – isnot2bad

回答

1

你在做什么是错误的,你宣布你的列表为List<Map.Entry<Integer,Integer>>因此,当你执行这行代码openTimes.add(i,_elem.get(i));你插入的不是一个地图。我认为你正在寻找类似的东西。你可以做的是

我不知道你想在这里做什么做的,但你可以使用这个

//We get the first Map 
Map<Integer,Integer> yourMap = _elem.get(0); 

for (int i=0; i<_elem.size(); i++) 
{ 
    yourMap.put(i,_elem.get(i)) 
} 

,或者您也可以使用建议什么dasblinkenlight。

+0

这只是我粗略的假设。用户没有澄清他想做的事情。但为了你的缘故,让我更新它。 – KyelJmD

1
for (int i=0; i<_elem.size(); i++) 
{ 
    Map.Entry<Integer,Integer> entry = 
        new AbstractMap.SimpleEntry<Integer, Integer>(i,_elem.get(i)); 
    openTimes.add(entry); 
} 

叠代表

for (Map.Entry<Integer,Integer> entry : openTimes) 
{ 
    System.out.println(entry.getKey()); 
    System.out.println(entry.getValue()); 
} 
1

如果必须有映射条目有你需要从中收获这些条目的Map。这样做的一个方法如下:

Map<Integer,Integer> tmp = new HashMap<Integer,Integer>(); 
for (int i=0; i<_elem.size(); i++) { 
    tmp.put(i, _elem.get(i)); 
} 
List<Map.Entry<Integer,Integer>> openTimes = 
    new ArrayList<Map.Entry<Integer,Integer>>(tmp.entrySet()); 

你也可以使用AbstractMap.SimpleEntry<K,V>直接,或提供自己的匿名实现。

更好的解决方案是定义自己的类来表示键值对。

相关问题