我有一個哈希映射和一個ArrayList。他們都填充,因爲我試圖打印出來,它工作正常。 arrayList包含MeterNumbers(MeterNumber是HashMap的關鍵)。該地圖包含用於鍵的MeterNumbers和用於值的字符串。HashMap始終返回空值,沒有明顯的原因
我希望能夠做的是從給定的MeterNumber鍵的hasMap中獲取String值,我將從ArrayList中提供該值。我不認爲我需要檢查它是否存在,因爲我知道它確實如此。我盡我所能來獲取值,但它一直給我空值。這是我的代碼。對於meters.txt
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Try {
static Map <MeterNumber, String> map2 = new HashMap <MeterNumber, String>();
static ArrayList<MeterNumber> blackOutMeters = new ArrayList<MeterNumber>();
public static void main (String args[]) {
try {
Scanner sc2 = new Scanner(new java.io.File("meters.txt"));
Scanner sc3 = new Scanner(new java.io.File("outages.txt"));
while (sc2.hasNextLine()) {
String transformerId;
MeterNumber meterId;
String line = sc2.nextLine();
String[] array = line.split(" ");
if (array.length>3){
transformerId = array[3];
meterId = MeterNumber.fromString(array [0] + array [1] + array [2]);
map2.put(meterId, transformerId);
}
}
// System.out.println (map2.values());
while (sc3.hasNextLine()) {
MeterNumber meterId;
String line = sc3.nextLine();
String[] array = line.split(" ");
if (array.length>2){
meterId = MeterNumber.fromString(array [0] + array [1] + array [2]);
blackOutMeters.add(meterId);
}
}
for (int i = 0; i <blackOutMeters.size(); i++){
String s = map2.get(blackOutMeters.get(i));
System.out.println (s);
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}}
文件格式是:對於outages.txt
900 791 330 T1
379 165 846 T1
791 995 073 T1
342 138 557 T1
114 125 972 T1
970 324 636 T1
133 997 798 T1
308 684 630 T1
169 329 493 T1
540 085 209 T1
265 229 117 T1
970 173 664 T1
264 943 573 T1
462 043 136 T1
087 307 071 T1
001 343 243 T1
文件格式爲:
900 791 330
379 165 846
791 995 073
342 138 557
114 125 972
970 324 636
133 997 798
預先感謝您。
哪裏了'MeterNumber'代碼的方法是什麼? – 2014-11-08 02:49:33
原因是:1)沒有找到給定鍵的項目,通常表明一個錯誤的equals/hashCode或者2)null被指定爲一個值。用「無理由」來解決計算機問題是沒有生產力的。 – user2864740 2014-11-08 02:49:34
(如果它與equals/hashCode有關,則有大量重複項。) – user2864740 2014-11-08 02:50:41