Je veux obtenir & supprimer un élément de Cache
Goyave: Cache.asMap(). Remove() est-il meilleur?
final Cache<String, PendingRequest> pendingRequest = CacheBuilder.newBuilder().build();
// get first
pendingCall = pendingRequest.getIfPresent(key);
pendingRequest.invalidate(key); // then remove.
J'ai aussi trouvé une autre façon
pendingCall = pendingRequest.asMap().remove(key);
Est-ce que la méthode asMap
clone tous les éléments? Est-ce un appel lourd? Quelle est la meilleure façon d'envisager la performance?
Bien que plus idiomatique, la vue est utile dans le cas où la valeur supprimée est nécessaire. Cette opération est atomique, alors que son alternative d'effectuer deux opérations est racée. L'interface Cache fournit une abstraction idiomatique et simple, tandis que la vue fournit une trappe d'échappement pour les besoins plus avancés. –
@BenManes Vous avez raison, je n'ai pas compris que OP avait besoin d'utiliser la valeur supprimée. – Xaerxess