以下Java代码:
public class TestCSVDataToMap {
public static Hashtable<String, Integer> testTable = new Hashtable<>();
public static void main (String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader("test.csv"));
String line;
while ((line = reader.readLine()) != null) {
String symbol = "0";
if(testTable.contains(symbol)) {
int value = testTable.get(symbol);
value++;
testTable.put(symbol, value);
}
else {
System.out.println("dash!");
testTable.put(symbol, 1);
}
}
System.out.println(testTable);
}
}
具有输出:
dash!
dash!
dash!
dash!
{0=1}
解析.csv文件时,为什么键'0'的值没有增加?在testTable(一个Hashtable)中,将其初始化为(0,1),并且该值应保持增长,因为该符号始终被检测为键“0”。
最佳答案
您正在使用 contains
,它确定参数是否作为Hashtable
中的值而不是键存在。因为找不到,所以您一遍又一遍地put
设置1
。
请改用 containsKey
,它确定参数是否作为键存在。
if(testTable.containsKey(symbol)){