Was nützt Collections.singletonList()
Java? Ich verstehe, dass es eine Liste mit einem Element zurückgibt. Warum sollte ich eine separate Methode haben wollen, um das zu tun? Wie spielt hier Unveränderlichkeit eine Rolle?
Gibt es spezielle nützliche Anwendungsfälle für diese Methode, anstatt nur eine bequeme Methode zu sein?
Antworten:
Der Javadoc sagt dies:
Du fragst:
In erster Linie aus Bequemlichkeitsgründen ... um zu vermeiden, dass Sie eine Folge von Anweisungen schreiben müssen, um:
Es kann auch etwas schneller sein und / oder etwas Speicherplatz sparen, aber es ist unwahrscheinlich, dass diese kleinen Einsparungen erheblich sind. (Eine Anwendung, die eine große Anzahl von Singleton-Listen erstellt, ist gelinde gesagt ungewöhnlich.)
Es ist Teil der Spezifikation der Methode; siehe oben.
Natürlich gibt es Anwendungsfälle, in denen die Verwendung der
singletonList
Methode zweckmäßig ist . Aber ich weiß nicht, wie Sie (objektiv) zwischen einem gewöhnlichen und einem "besonders nützlichen" Anwendungsfall unterscheiden würden ...quelle
Hier ist eine Ansicht der Singleton-Methoden:
quelle
Aus dem Javadoc
Beispiel
Verwenden Sie diese Option, wenn der Code eine schreibgeschützte Liste erwartet, Sie jedoch nur ein Element darin übergeben möchten.
singletonList
ist (thread-) sicher und schnell.quelle
Um Ihre unveränderliche Frage zu beantworten:
Collections.singletonList
erstellt eine unveränderliche Liste. Bei einer unveränderlichen Liste (auch als nicht veränderbare Liste bezeichnet) kann der Inhalt nicht geändert werden. Die Methoden zum Hinzufügen oder Entfernen von Elementen lösen Ausnahmen aus, wenn Sie versuchen, den Inhalt zu ändern.Eine Singleton-Liste enthält nur dieses Element und kann nicht geändert werden.
quelle
Wenn sich eine Unveränderliche / Singleton-Sammlung auf eine bezieht, die nur ein Objekt hat und die nicht weiter geändert wird, kann dieselbe Funktionalität erreicht werden, indem eine Sammlung "Unmodifizierbare Sammlung" mit nur einem Objekt erstellt wird. Welchen besonderen Zweck erfüllt die Singleton-Sammlung, da die nicht modifizierbare Sammlung mit einem Objekt dieselbe Funktionalität erreichen kann?
quelle
singletonList kann eine Instanz eines beliebigen Objekts enthalten. Der Objektstatus kann geändert werden.
Wir können unmodizableList nicht wie oben definieren.
quelle