java如何检索存储在映射值中的对象?
Set<Entry<Integer, InventoryStock>> inventoryData=
Set<Map.Entry<Integer,InventoryStock>>) ois.readObject();
for( Entry<Integer, InventoryStock> list:inventoryData) {
for(InventoryStock stock:list)
if(stock!=null){
System.out.println("Item id" + stock.getItemID()+" "+stock);
map.putIfAbsent(stock.getItemID(), stock);
}
我正在从.ser
文件中拾取inventoryData
集,现在我需要访问映射的值(即inventorystock
对象),并需要将其分配给另一个映射。在第二个增强for循环中显示错误:
error: Can only iterate over an array or an instance of java.lang.Iterable in 2nd for loop
请帮我修复这个代码
# 1 楼答案
你的变量
(本例中的名称具有误导性)不是容器-您无法遍历它。 试试这样
# 2 楼答案
只是一对(键、值),不可编辑。如果你的
InventoryStock
是可迭代的,你必须先从你的条目中得到它InventoryStock
是一个值,所以使用方法entry.getValue()
获取它:# 3 楼答案
不能迭代
Entry
。一个Entry
是一对(key, value)
,所以要从Entry
中得到(单数)InventoryStock
,必须使用getValue