Sto provando a creare una LinkedHashMap concorrente per un'architettura con multithreading.Implementazione di una LinkedHashMap simultanea
Se utilizzo Collections#synchronizedMap()
, dovrei utilizzare i blocchi sincronizzati per l'iterazione. Questa implementazione porterebbe ad un'aggiunta sequenziale di elementi.
Se utilizzo ConcurrentSkipListMap
esiste un modo per implementare uno Comparator
da memorizzare in sequenza, come memorizzato in Elenco o coda collegati.
Vorrei utilizzare i pacchetti integrati di java anziché di terze parti.
EDIT:
In questo concomitante LinkedHashMap
, se le chiavi sono il nome, desidero mettere le chiavi in sequenza del loro arrivo. Ad esempio, il nuovo valore verrebbe aggiunto all'inizio o alla fine, ma in sequenza.
Durante l'iterazione, è possibile aggiungere LinkedHashMap
con nuove voci o rimosso. ma l'iterazione dovrebbe essere la sequenza in cui sono state aggiunte le voci.
Capisco che utilizzando Collections#synchronizedMap()
, sarebbe necessario implementare un blocco sincronizzato per l'iterazione, ma la mappa sarebbe modificabile (le voci potrebbero essere aggiunte/rimosse) mentre viene iterata.
Di cosa getter/setter stai parlando? Cosa stai cercando di "memorizzare in sequenza"? Si prega di fornire maggiori dettagli - è difficile capire cosa stai cercando di fare in questo momento. –
Cosa stai cercando di memorizzare in sequenza? Se le tue chiavi hanno un ordine definibile, dovresti essere in grado di scrivere un comparatore. Forse dovresti fornire maggiori informazioni sulle chiavi della tua mappa e su come vorresti ordinarle. –