04. august 2003 - 14:02Der er
35 kommentarer og 1 løsning
Fjern et random objekt fra LinkedList?
Hejsa, Jeg har en LinkedList, hvor der er gemt x antal objekter i, og nu skal jeg så have lavet en funktion, der sletter et vilkårligt objekt af dem der er gemt deri. Hvordan gøres det nemmest??
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.
Jeg er nu ved at lave en metode der skal tjekke om et objekt allerede er gemt i listen, og der har jeg prøvet det her, men det virker ikke rigtigt. Gør jeg noget forkert??
Her er metoden:
public boolean tjeckObjects(Object newObject) { if(list.equals(newObject) == false) { System.out.println("A new object is added"); list.addFirst(newObject); } else { System.out.println("The object is already in the list"); } return true; }
Du bliver nok nødt til at løbe hele listen igennem i en for-løkke...
boolean findes = false;
for(int i = 0; i < list.size(); i++) { if(list.get(i).equals(newObject) == false) { System.out.println("A new object is added"); list.addFirst(newObject); } else { System.out.println("The object is already in the list"); findes = true; } } return findes;
public static boolean ckObjects(Object newObject) { boolean findes = false; for(int i = 0; i < list.size(); i++) { if(list.get(i).equals(newObject)) { findes = true; } } if(findes) { System.out.println("The object is already in the list"); } else { System.out.println("A new object is added"); list.add(newObject); } return findes; }
public boolean tjeckObjects(Object newObject) { if(list.indexOf(newObject) < 0) { System.out.println("A new object is added"); list.addFirst(newObject); } else { System.out.println("The object is already in the list"); } return true; }
Nu har jeg prøvet begge forslag, men der er ikke nogen af dem der virker :( Jeg kan stadig tilføje 2 ens objekter i min liste.
Jeg skal lige gøre opmærksom på, at min objekt jeg skal tilføje til listen, består af et tal og en string. Jeg ved ikke om det har noget med det at gøre, at den ikke kan se om de er ens...
Nu når min equals metode ligger i en anden klasse, end der hvor jeg har min addnewobject metode, hvordan ved jeg så at den equals metode bliver brugt til at tjekke om objektet allerede er i listen??
Og skal det skrives sådan som du har gjort: public boolean equals(Object o), eller er det ligemeget?
Jeg har fået det til at virke nu. Det skulle bare lige omskrives lidt for at det kunne virke i mit program...
Jeg takker mange gange for din hjælp, og her er dine points!
Synes godt om
Ny brugerNybegynder
Din løsning...
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.