molto simile a come un ImmutableList
potrebbe essere esteso in quanto tale:Estensione di un ImmutableMap con valori aggiuntivi o nuove
ImmutableList<Long> originalList = ImmutableList.of(1, 2, 3);
ImmutableList<Long> extendedList = Iterables.concat(originalList, ImmutableList.of(4, 5));
Se ho una mappa esistente, come potrei estendere (o creare una nuova copia con i valori sostituiti)?
ImmutableMap<String, Long> oldPrices = ImmutableMap.of("banana", 4, "apple", 7);
ImmutableMap<String, Long> newPrices = … // Increase apple prices, leave others.
// => { "banana": 4, "apple": 9 }
(. Non dobbiamo cercare una soluzione efficiente, come apparentemente that doesn't exist by design Questa domanda piuttosto cerca la soluzione più idiomatica.)
La restrizione è che i duplicati non sono ammessi - - Non mi permette di aumentare il prezzo delle mele. –
@AndresJaanTack vedere la mia risposta modificata. Lontano da elegante, ma dovrebbe fare il trucco. – Mureinik
Si consiglia di non consigliare "inizializzazione doppia parentesi". Vedi http://stackoverflow.com/a/9108655/95725 e http://blog.jooq.org/2014/12/08/dont-be-clever-the-double-curly-braces-anti-pattern/ – NamshubWriter