Avatar billede tanis13 Nybegynder
09. november 2005 - 11:25 Der er 9 kommentarer og
1 løsning

Java, Arraylist - Edit og Delete

Sider pt og skriver opgave i datalogi i java.

Jeg skal i min opgave kunne redigere og slette diverse / bestemte arraylists, men hvordan ved jeg ikke lige.

Muligt nogle kan komme med lidt hjælp, evt. gerne i kode.

Mvh Thomas
Avatar billede kalp Novice
09. november 2005 - 12:12 #1
ArrayList liste = new ArrayList();

liste.add("hejsa");

og så sletter vi liste igen.

liste = null;

tænker du på hvordan du sletter elementer i arraylist?
Avatar billede kalp Novice
09. november 2005 - 12:14 #2
liste.remove(x);

erstat x med den plads i din liste som du vil slette
Avatar billede kalp Novice
09. november 2005 - 12:16 #3
package mypackage;
import java.util.ArrayList;

public class Class1
{
  public Class1()
  {
 
  ArrayList  liste = new ArrayList();
 
  liste.add("Hejsa0");
  liste.add("Hejsa1");
  liste.add("Hejsa3");
  liste.add("Hejsa4");
  liste.add("Hejsa5");
 
  liste.remove(1); // sletter hejsa1 efter som dens index i arraylisten er 1.
  liste.get(0) = "halløjsa"; //retter teksten i Hejsa0 til halløjsa fordi vi vælger index 0
  }

  /**
  *
  * @param args
  */
  public static void main(String[] args)
  {
    Class1 class1 = new Class1();
  }
}
Avatar billede mikkelbm Nybegynder
09. november 2005 - 16:49 #4
Et godt sted at starte er i dokumentationen:

http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html
Avatar billede mikkelbm Nybegynder
09. november 2005 - 16:49 #5
Avatar billede tanis13 Nybegynder
10. november 2005 - 09:56 #6
Hva hvis der er flere inputs i ArrayListen? f.eks. navn, adr, tlf - hvordan får man redigeret alle 3 ?
Avatar billede kalp Novice
10. november 2005 - 10:29 #7
Du kan ikke have alle de inputs medmindre de er gemt i et objekt..

F.eks hvis vi gemme alt info i en klasse som denne

public class Person
{
String navn;
int alder;

public Person()
{}

public Person(String navn, int alder)
{
this.navn = navn;
this.alder = alder;
}

public void Opdater(String navn, int alder)
{
this.navn = navn;
this.alder = alder;
}
}


så kan du oprette objektet..

Person opretPerson = new Person("Hans",22);
Person opretEnAndenPerson = new Person("Jens",22);

ArrayList liste = new ArrayList();

liste.add(opretPerson);
liste.add(opretEnAndenPerson);

På plads 0 i vores ArrayList har vi Hans og på plads 1 har vi altså Jens.

Vi vil gerne rette i Jens.. så derfor henter vi først jens

Person enPerson = (Person)liste.get(i);

opdater hans info via. den metode vi har lavet til formålet
enPerson.Opdater("Jens",25);

så smider vi lige jens op i ArrayListen igen.
liste.get(1) = enPerson;

har ikke tested koden for har skrevet den her, men det er ihvertfald den ide jeg har med det.

Du kan sagtens rette i et objekt direkte i ArrayListen men denne metode er nok lettest for dig at forstå..

normalt har man en opdelt metoden Opdater(String navn, int alder)

så der er en opdater navn og en opdater alder metode..
Avatar billede tanis13 Nybegynder
10. november 2005 - 11:20 #8
Hmm, kan ikk få det til at passe ind i min kode.

Jeg bruger 2 klasser, hvor man i den ene indtaster oplysninger, hvor den anden klasse 'gemmer' disse.

Jeg vil gerne kunne kalde metoden: "public void change(int nummer)" hvor nummer så er den position i ArrayList jeg ønsker at ændre.
Herefter vil jeg gerne kunne ændre de gamle oplysninger.

Ved ikke om det giver mening?
Avatar billede kalp Novice
10. november 2005 - 11:22 #9
public void change(int nummer, Person person)

ville nok mere se sådan ud.. du skal nemlig sende de nye ændringer med når du laver metoden til void.

men hvis du giver noget mere kode kan jeg bedre se hvad det er du mangler.
Avatar billede tanis13 Nybegynder
10. november 2005 - 14:19 #10
Har faktisk fundet ud af det :) Så  det behøver ikke, men tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester