错误:
Num num = new Num();
while((line = bfr.readLine()) != null) {
String[] lines = line.split("\t");
if( map.get(lines[0])!= null) {
num = map.get(lines[0]);
msid_num = num.getMsid_num().add(new BigDecimal(lines[2]));
total_num = num.getTotal_num().add(new BigDecimal(lines[1]));
num.setMsid_num(msid_num);
num.setTotal_num(total_num);
map.put(lines[0], num);
}else {
num.setMsid_num(new BigDecimal(lines[2]));
num.setTotal_num(new BigDecimal(lines[1]));
map.put(lines[0], num);
}
}
解决办法:
while((line = bfr.readLine()) != null) {
String[] lines = line.split("\t");
if( map.get(lines[0])!= null) {
Num num = new Num();
num = map.get(lines[0]);
msid_num = num.getMsid_num().add(new BigDecimal(lines[2]));
total_num = num.getTotal_num().add(new BigDecimal(lines[1]));
num.setMsid_num(msid_num);
num.setTotal_num(total_num);
map.put(lines[0], num);
}else {
Num num =new Num();
num.setMsid_num(new BigDecimal(lines[2]));
num.setTotal_num(new BigDecimal(lines[1]));
map.put(lines[0], num);
}
}
具体原因待研究
—————————————————————————————————————————
原因,因为一直在共用一个相同对象,一直在一个对象里更新值,最终导致不同key的value 最后一次入值都是最后set的值从而导致这个问题。