Just nu i M3-nätverket
Jump to content

Kopiera en LinkedList


Bergett

Recommended Posts

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]

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...