2017-03-16 1 views
-4

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?

+2

Welche Schnittstelle? Welche Karte? – SilverNak

+0

Wissen Sie, was veränderbare und unveränderliche Operationen sind? klingt ähnlich – vikingsteve

+0

Dank SilverNak, das ist Map-Schnittstelle – Subbbu

Antwort

1

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.

1

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.

Verwandte Themen