java在hashmap中迭代
我有一个hashmap,希望通过迭代获得键和值。我多次向oneList和oneMap添加条目。我只多次得到第一个“字符串变量”
Map<Integer, List<Object>> oneMap = new LinkedHashMap<Integer, List<Object>>();
List<Object> oneList = new LinkedList<Object>();
oneList.add("one");
oneList.add(FieldType);
oneMap.put("1", oneList);
//iterating through the map
for (Map.Entry<Integer,List<Object>> entry : oneMap.entrySet()) {
System.out.println("Compare Key :: " +entry.getKey());
oneList = entry.getValue();
String oneSrvFld = (String) oneList.get(0);
System.out.println("one srvFld :: " +oneSrvFld);
}
# 1 楼答案
多次获取第一个字符串的原因是,您只检索列表中的第一个字符串。从列表中获取数据的代码如下:
这只获取列表中的第一项,忽略其余项。由于只有一个列表,因此只能看到一个字符串
我不确定您想要实现什么,但可能的解决方案包括为地图中的每个条目创建一个新的列表,或者在您从地图中取出列表时迭代列表中的所有条目
# 2 楼答案
试试这个代码
希望能有帮助
# 3 楼答案
我想您希望
(String) oneList.get(0);
将获得第一个元素并将其从列表中删除。但是get(index)在列表中的指定位置返回,而不删除元素