首先,是否有一般方法来保证不可变性?我的意思是是否应该复制整个集合,进行更改,然后返回新对象?还有没有更复杂、更一般的方法?
进一步说,那么像树这样的“显而易见”的(对我来说)可变集合怎么办?通常它们被实现为具有N个子节点的节点。在这种情况下,如何确保不可变性?递归克隆和复制所有引用?
接下来,我想知道对于这些集合,什么是最好的方法:
1. 基于数组的列表 - 在进行更改之前复制它? 2. 队列 - 为前面和后面分别使用两个数组,在返回之前进行克隆?基于节点的实现呢? 3. 树 4. 哈希映射 - 复制桶数组以及所有冲突列表吗? 5. 集合
非常感谢您的回答。