calls 是一个 arrayList,customerCalls 是一个 hashMap。我正在使用 eclipse 进行调试,我发现 call.clear 清除了已插入 customerCalls Hashmap 中的 arrayList 对象。我很困惑,因为我认为一旦对象被提交到另一个数据结构,它就有一个独立的实体,除非我访问包含它的这个数据结构,否则不能对其进行任何操作。
我需要清除 arrayList 调用,以使其免费用于一组新的调用,这些调用将专用于另一个合约,然后作为 hashmap 键(合约编号)的值插入。不清除它会累积所有调用,因为它将当前迭代添加到过去的迭代中。
> if (callContractID.equals(currentContractID)==false){
> customerCalls.put(currentContractID, calls);
> currentContractID = callContractID;
> calls.clear();
> calls.add(call);
> count++;
> }
else {
calls.add(call);
}