Just nu i M3-nätverket
Gå till innehåll

Kopiera en LinkedList


Bergett

Rekommendera Poster

Hej!

 

Jag har ett problem med mitt program. Jag har skapat en LinkedList somjag har lagt in in objekt av typen flygplan (som jag har skapat). Jag undrar hur man kopierar en LinkedList utan att göra en Shallowcopy, jag vill alltså ha två helt skilda listor som inte pekar på samma minnesutrymme.

 

Jag har skrivit en metod för detta,

 

public LinkedList copyList(LinkedList L)

{

LinkedList tmp = new LinkedList();

Flygplan s = new Flygplan();

Flygplan a =new Flygplan();

for(int i =0; i<L.size();i++)

{

 

s = getObject(L,i);

a.AC=s.AC;

a.ETL=s.ETL;

a.LandTid=s.LandTid;

a.LTL=s.LTL;

a.offSchedule=s.offSchedule;

a.SakAvst=s.SakAvst;

a.STL=s.STL;

a.TA=s.TA;

a.TidFram=s.TidFram;

a.w=s.w;

 

tmp.addLast(a);

 

}

 

return tmp;

}

 

När jag kör metoden och skriver ut listan är det samma objekt som ligger i hela listan. Hur ska jag kopiera listan?

 

/Bergett

 

[bild raderad 5/22/2005 8:39:06 PM av Bergett]

Länk till kommentar
Dela på andra webbplatser

Enklast - din flygplansklass som du lagrar, implementera där interfacet Cloneable. Listan i sig tillåter kloning, men du måste godkänna din klass och se till att allt klonas där. Inget svårt.

 

Sedan är det bara att sätta

 

tempList = (LiinkedList)myList.Clone();

 

Klart. Då kopieras hela listan och alla dess objekt.

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Cloneable.html

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

[inlägget ändrat 2005-05-22 20:53:17 av Monshi]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...