Die in dieser Schnittstelle enthaltenen "destruktiven" Methoden, dh die Methoden, die die Map ändern, auf der sie ausgeführt werden, werden zum Ausgeben von UnsupportedOperationException angegeben, wenn diese Map die Operation nicht unterstützt.Was sind destruktive und nicht-destruktive Methoden in Java?
Antwort
Eine einfache Erklärung wäre, dass eine destruktive Methode eine Methode ist, die das Attribut eines Objekts ändert. Bei einer nicht-destruktiven Methode verändern Sie das Attribut eines Objekts nicht.
In Ihrem Fall würde destruktiv bedeuten, dass der Inhalt der Map modifiziert und nicht-destruktiv wäre, um Ihr Ziel zu erreichen, ohne den Inhalt zu ändern.
Wenn Sie ein anderes Beispiel nehmen, nehmen wir an, Sie haben ArrayList-Objekt list1
und list2
und Sie wollen Elemente in beiden in derselben Liste.
list1.addAll(list2);
Dies wird es tun, aber Sie Anzahl der Elemente in list1
verändern. Also das ist Destructive Form des Tuns. Sie zerstören list1
durch Anhängen weiterer Elemente daran.
List<Type> list3 = new ArrayList<Type>(list1);
list3.addAll(list2);
In diesem Fall sind erfüllen Sie Ihr Ziel Elemente in list1
und list2
in dem gleichen Eimer zu setzen, aber ohne einen von ihnen zu ändern, indem eine neue Liste namens list3
Erstellen und Verwenden sie alle Elemente setzen in Ihrem lists.This ist nicht-destruktive Art und Weise es zu tun, weil Sie list1
hier nicht ändern, es bleibt die gleiche Zeit.
Für andere: Die Frage ist über die java.util.Map
Schnittstelle, dieser Satz ist in seiner Dokumentation.
Destruktive und nicht-destruktive Methoden sind kein allgemeiner Java-Begriff, sondern nur im Rahmen dieser Schnittstelle.
Wie es in dem zitierten Satz sagt, destruktiven Methoden sind diejenigen, die den Inhalt der Karte ändern würde, dass die Dinge wäre wie put
, clear
oder remove
. Nicht-destruktive Methoden sind solche, die nur Leseoperationen ausführen, wie get
, containsKey
oder containsValue
.
- 1. Was sind abstrakte Klassen und abstrakte Methoden?
- 2. Was sind die Methoden Html.Validate und Html.ValidateFor?
- 3. Was sind createReceive und createReceiveRecover-Methoden in AbstractPersistenceActor?
- 4. Was sind verschiedene Links Methoden
- 5. Was sind Invoke && InvokeAsync-Methoden?
- 6. Sind native Java-Methoden äquivalent zu statischen Java-Methoden?
- 7. Was sind Plattformbibliotheken in Java?
- 8. Was sind die besten Methoden zum Verwalten von Eigenschaften/Feldern (und Daten) und Methoden in Klassen?
- 9. Was sind Erweiterungs-Methoden - und was unterscheidet sie von anderen Methoden?
- 10. Java-Methoden und Array
- 11. Elisp destruktive Betriebswarnung?
- 12. P = NP: Was sind die vielversprechendsten Methoden?
- 13. Was sind die Unterschiede zwischen Perl und Java Regex-Funktionen?
- 14. equals() und hashCode() -Methoden in Java
- 15. Java: Delegierungsmuster und geschützte Methoden
- 16. Sind Sichtbarkeitsschlüsselwörter in Java eigentlich Methoden, wie in Ruby?
- 17. Was sind TestExecutionListeners und was machen sie?
- 18. Klasse, Objekte und Methoden. Java
- 19. Richtlinien für destruktive Schaltfläche auf UIActionSheet
- 20. Probleme mit set und Methoden in Java
- 21. Java: Generische Methoden und Zahlen
- 22. Was sind die Unterschiede in JIT zwischen Java und. NET
- 23. Was sind die Anzahl Datentypen in Java?
- 24. Was sind in Subversion bewährte Methoden zum Ändern historischer Dateien?
- 25. Was sind synthetische Felder in Java?
- 26. Was sind implizite Konstruktoren in Java?
- 27. Schnittstelle - Überschrieben Methoden sind nicht
- 28. Was sind '!' und '?' in Swift
- 29. Was sind class_setIvarLayout und class_getIvarLayout?
- 30. Was sind die besten Methoden für die Bereitstellung von Java-Code in der Produktion?
Welche Schnittstelle? Welche Karte? – SilverNak
Wissen Sie, was veränderbare und unveränderliche Operationen sind? klingt ähnlich – vikingsteve
Dank SilverNak, das ist Map-Schnittstelle – Subbbu