calls は arrayList で、customerCalls は hashMap です。私はEclipseを使用してデバッグしていましたが、calls.clearがcustomerCalls Hashmapにすでに挿入されているarrayListオブジェクトをクリアしていることに気づきました。オブジェクトが別のデータ構造に送信されると、それは独立したエンティティを持ち、それを含むこのデータ構造にアクセスしない限り、そのオブジェクトに対して操作を実行できないと思ったので、私は混乱しています。
arrayList 呼び出しをクリアして、別のコントラクト専用の新しい一連の呼び出しを解放し、後でハッシュマップ キー (コントラクト番号) の値として挿入する必要があります。クリアしないと、現在の反復の追加が過去の反復の追加に追加されるため、すべての呼び出しが累積されます。
> if (callContractID.equals(currentContractID)==false){
> customerCalls.put(currentContractID, calls);
> currentContractID = callContractID;
> calls.clear();
> calls.add(call);
> count++;
> }
else {
calls.add(call);
}