在Java和Excel中进行批处理会产生不同的结果

时间:2013-12-16 10:54:42

标签: java list hashmap batch-processing

我需要批处理具有类似客户端ID的元素(字符串类型,但目前只有数字值,例如" 12345"," 235134"等等)

Map<String, List<Client>> _batched = new HashMap<String, List<Client>>();
for (Client c : _Clients)
{
    String id = c.getIdClient();
    List<Client> clients = _batched.get(id);
    if(_clients == null){
        clients = new ArrayList<Client>();
        _batched.put(id, clients);
    }
    clients.add(c);
}

问题在于,当我将此函数与Excel(=SUM(IF(FREQUENCY(C2:C618,C2:C618)>0,1)))的结果进行比较时,我会得到不同的结果,即526和519.

我的代码有问题吗?

1 个答案:

答案 0 :(得分:0)

你的问题在这里:

String id = c.getIdClient();
List<Client> _clients = _batched.get(id);
if(_clients == null){
    pois = new ArrayList<Client>();
    _batched.put(id, _clients);
}
_clients.add(c);

您在名为pois的变量中创建一个新数组,但随后将变量_clients的内容放入_batched。放入pois的值会发生什么?

我不明白为什么它实际上没有空指针异常。