0
我想&從Cache
Guava:Cache.asMap()。remove()更好嗎?
final Cache<String, PendingRequest> pendingRequest = CacheBuilder.newBuilder().build();
// get first
pendingCall = pendingRequest.getIfPresent(key);
pendingRequest.invalidate(key); // then remove.
刪除一個項目我還發現了另一種方式
pendingCall = pendingRequest.asMap().remove(key);
是否asMap
方法克隆的所有項目?這是一個沉重的電話嗎?如果考慮性能,哪種方式更好。
雖然更習慣,但在需要刪除值的情況下,該視圖非常有用。這種操作是原子的,而他執行兩種操作的選擇是活潑的。 Cache接口提供了一種習慣的和簡單的抽象,而該視圖爲更高級的需求提供了逃生艙口。 –
@BenManes你說得對,我沒有看到OP需要使用刪除的值。 – Xaerxess