|
Another thought on the usability case...
As I said, the multiset would be needed to allow for proper handling of removing an Executable from a ExecutableList. But removing an Executable is really an edge case. It happens in exactly one use case: un-scheduling a deletion, which is almost always a problem in the application anyway. Aside from that an individual Executable is never removed from any of these lists. So what I am saying is that rather than opting for a multiset-based solution just to account for removal, I am OK with ExecutableList#remove recalculating the query spaces immediately on remove.
It really comes back to whether you saw an actual performance reason to collect the spaces lazily? And if so, how much did the double iteration offset that gain?
|