Vor- und Nachteile von clone() bei einem zweidimensionalen Array

RalU

Mitglied
Hallo!
Wie das Thema schon sagt, frage ich mich, was die Vor- und Nachteile der Funktion clone() bei einem zweidimensionalen Array sind.

Ich weiß, dass clone() eine flache Kopie erzeugt, d. h. wenn ein zweidimensionales Array geklont werden soll, dann werden nur die Feldeinträge der esten Dimension kopiert, nicht aber die der zweiten. Oder seh ich das falsch? Ist das nun ein Vorteil oder ein Nachteil?

Angenommen ich habe eine Klasse, die ein solches zweidimensionales Array als Membervariable hat.
Jetzt könnte ich doch die getMethode dieses Arrays auf verschiedene Arten implementieren:

Code:
public class X
{
    private array = {{3,5,6},{7,3,.1},{2,6,6},{13,14,87}} ;

    public int[][] getArray()
    {
         return array;
    }

    public int[][] getArrayClone()
    {
           return array.clone();
   }
}
Was ist der Unterschied bei Verwendung von getArray() und getArrayClone() ?
Was sind die Vorteile, was sind die Nachteile?

Gruß, Ralf
 
Du hast natürlich ein sehr schlechtes Beispiel gewählt, da ein int kein Objekt ist und somit nicht veränderlich. Der Grund warum man ein Array klont, ist der dass entweder die Objekte im Array veränderlich sind, man dies aber nicht erlauben möchte, oder dass das Array an sich nicht verändert werden darf.

Das mit dem Klonen ist eine durchaus komplexe Sache: http://books.google.de/books?id=ka2...m=8&ved=0CC0Q6AEwBw#v=onepage&q=clone&f=false In dem Buch ist es ganz gut erklärt.
 
Zurück