08. maj 2006 - 13:12Der er
8 kommentarer og 1 løsning
overskriver alle punkter i en arraylist
Jeg har en måde hvori jeg gemmer et objekt i en arraylist mit problem ligger i hver gang jeg gemmer et nyt objekt af samme type overskriver den alle værdierne i arraylisten
//intialisere min memory private pathMemory ptMem = new pathMemory();
//gemmer en TSPløsning i vores løsnings liste OurTSPSolution solution = twoOp.getSolution(); System.out.println( solution); ptMem.addSolution(solution);
/**Metode til at gemme en løsning *pathMemory er en arraylist */ public void addSolution(OurTSPSolution pSolution){ pathMemory.add((OurTSPSolution)pSolution); }
Jeg har mistanke til at det kun er en memory pointer jeg gemmer i arraylisten men hvordan kan jeg undgå dette. Jeg har prøvet at bruge clone() men det har ikke ændret på noget
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
08. maj 2006 - 13:14#1
Prøv at fjerne (OurTSPSolution) og bare add'e pSolution
har jeg prøvet det hjælper ikke det eneste det giver er at metoden er deprecation da men kan give objekter i java 5 en type når man adder dem til en arraylist
twOp.getSolution(); returnere et nyt objekt hver gang (en ny løsning).
Men jeg skrev en cloneclass som har fået det til at virke nu, havde kun lavet en shallow clone før hen, fik det lavet om til en deepclone nu så det virker.
Smid et svar for dine råd hjalp mig meget i den rigtige retning :D
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.