Ich mache oft eine Sammlung Feld nicht änderbar, bevor es von einem Getter-Methode zurückkehrt:Wie erstelle ich eine tiefe, nicht veränderbare Sammlung?
private List<X> _xs;
....
List<X> getXs(){
return Collections.unmodifiableList(_xs);
}
Aber ich kann das nicht denken Sie an eine bequeme Art und Weise zu tun, wenn das X oben ist selbst eine Liste:
private List<List<Y>> _yLists;
.....
List<List<Y>> getYLists() {
return Collections.unmodifiableList(_yLists);
}
Das Problem in den obigen ist natürlich, dass, obwohl der Client die Liste der Listen nicht ändern kann, kann Y-Objekte hinzufügen/löschen von den eingebetteten Listen.
Irgendwelche Gedanken?
Das ist ziemlich gut. –
Besonders nachdem ich die äußere Liste auch nicht änderbar gemacht habe :-) –
Was passiert, wenn es sich um eine Liste von Sets handelt? –