我有扫描器解析文件并将索引1和2放入散列图。
假设k1 = 5且下一个k1 = 5
它会打印出来:5和10 虽然我只想广告价值并只显示一个键。所以我想要添加值并为“10”
while (scanner.hasNextLine()) {
InputLine = scanner.nextLine();
String[] arr = InputLine.split("\t");
if(map.containsKey(arr[1])){
map.put(arr[1], map.get(arr[1]) + Integer.parseInt(arr[2]));
}
else
{
map.put(arr[1], Integer.parseInt(arr[2]));
}
System.out.println(map.get(arr[1]));
}
答案 0 :(得分:-1)
这可能只是一个有意义的答案。 首先,没有重复的密钥可以存储在" Set"中。所以每一个"关键"有一个唯一的哈希码。你使用" String"作为钥匙。解析完行后,数组的第二个元素就成了你的关键。
你说你有两个5岁。
XX 5//ends up with no chars
YY 5 //ends up with a white-space
对于XX行,您的第一个键绝对是" 5"。 在YY排,你的钥匙变成" 5"。
两个字符串具有不同的哈希码。这就是为什么它们可以存储在密钥中的原因" Set"。
在" \ t"之前或之后检查您的文件字符。请确保在数字之前或之前是否有其他字符。