我正在尝试实现一个 LinkedHashMap 数组,但我不知道是否可能......
目前我的代码如下所示:
public class LHMap {
public static void main(String[] args) {
LinkedHashMap<String, Integer>[] map = null;
for (int i = 0; i < 5; i++) {
map[i] = new LinkedHashMap<String, Integer>();
}
map[0].put("a", 0);
System.out.println(map[0].get("a"));
}
}
System.out.println(extracted(map)[0].get("a"));
返回“NullPointerException”...
你知道如何实现这个吗?
编辑:1.删除提取(),2.表->数组
最佳答案
我不知道您的 extracted()
方法想要做什么。您收到 NullPointerException
是因为您将 map
传递到 extracted
中,然后立即返回它。在您的示例中,您传入 null
然后返回它。您无法在空数组上找到第 ith 下标(或任何下标)。
使用 List
代替 LinkedHashMap
数组可以吗?
List<Map<String, Integer>> listOfMaps = new ArrayList<Map<String, Integer>>();
for(int i = 0; i < 5; i++) {
listOfMaps.add(new LinkedHashMap<String, Integer>());
}
listOfMaps.get(0).put("a", 0);
System.out.println(listOfMaps.get(0).get("a"));
编辑
顺便说一下,你不能用泛型实例化数组。如果您想要类型安全,我建议您使用该列表。否则你就不得不凑合:
LinkedHashMap<String, Integer>[] map = new LinkedHashMap[5];
但是,这会给您警告。
关于java - 有没有办法实现LinkedHashMap的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4128923/