List<Map<String, Object>> listItems = new ArrayList<>();
for (int i = 0; i < data.size(); i++) {
Map<String, Object> map = new HashMap<>(); // 正確:循環內 new
map.put("image", images[i]);
listItems.add(map);
}
若 new HashMap() 放在循環**外部**,每次迴圈覆蓋同一 Map,列表裡全是同一引用,最終顯示最後一筆資料。
List<Map<String, Object>> listItems = new ArrayList<>();
for (Item item : data) {
Map<String, Object> map = new HashMap<>(); // 每筆資料一個 Map
map.put("image", item.image);
map.put("title", item.title);
listItems.add(map);
}
若單鍵對應多值,用 Map 或 Guava Multimap:
Multimap multimap = ArrayListMultimap.create();
multimap.put("fruit", "apple");
multimap.put("fruit", "banana");
List fruits = (List) multimap.get("fruit");
在循環內打印 map.hashCode() 或 System.identityHashCode(map),確認每次是否為不同實例。