“Map-Double[], Double-”是映射的创建方式 - 作为 HashMap 。 尝试将 [0.0, 0.0] 的 Double[] 输入到映射中以获取值,但它返回的值为 null。
Scanner input = new Scanner(new File(fileName));
while (input.hasNextLine()) {
String[] listed = input.nextLine().split("\\s+");
Double[] key = new Double[2];
Double value = 0.0;
for(int i = 0; i<3; i++) {
if(i<2) {
key[i] = Double.parseDouble(listed[i]);
} else {
value = Double.parseDouble(listed[i]);
}
}
这对于代码来说非常重要,它只是从文件中读取并将其放入 HashMap 中。
最佳答案
数组为Double[]
没有equals
/hashcode
考虑数组条目的实际内容的方法。仅当您使用相同的实例时,数组中的这些方法才会匹配。
所以你不能使用数组作为 HashMap 中的键,使用 List<Double>
因为 key 可以工作,但还有其他问题。我会推荐一个带有自定义的专门类(class) equals()
/hashcode()
实现。
将 equls/hashcode 与 double 一起使用也存在很大问题。
关于java - 具有返回 null 的双数组 get 方法的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61044243/