/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
arrayList problem
Fra : bah


Dato : 21-01-02 14:35

Hej! Jeg har et problem, som jeg håber der er nogen, der kan hjælpe mig med
det.
Jeg har en klasse Index(String name, int amount, int antal). Jeg har også
en klasse som initialisere en ArrayList. Jeg har en antal objekter af
klassen Index som skal beholdes i ArrayListen. Det hele går godt indtil jeg
skal hive disse Index objekter ud af ArrayListen. Alle indexerne bliver til
den sidste Index object jeg har puttet i ArrayListen, og det kan jeg ikke
forestå hvorfor?
Ex. Jeg ligger index1, index2 og index3 i ArrayListen, men når jeg får dem
ud, jeg får 3 gange index3'er.

kode:

Index index1= new Index("Emil",200,5);
myArray.a.add(entry1);// tilføjer index1 til ArrayListen a
Index index2= new Index("Tonny",300,4);
myArray.a.add(entry2);
Index index3= new Index("Mie",350,4);
myArray.a.add(entry3);

int i=0;
while (!myArray.a.isEmpty()){
index = (Index) myArray.a.get(i);
System.out.println(myArray.a.get(i).toString());
String name= index.getName();
int amount= index.getAmount();
int antal= index.getAntal();
i++;
}

---------------------
ouput:
Mie 350 4
Mie 350 4
Mie 350 4
antal elementer: 3
-----------------------





 
 
Martin Ehmsen (21-01-2002)
Kommentar
Fra : Martin Ehmsen


Dato : 21-01-02 15:14

bah wrote:

> Hej! Jeg har et problem, som jeg håber der er nogen, der kan hjælpe
mig med
> det.
> Jeg har en klasse Index(String name, int amount, int antal). Jeg har
også
> en klasse som initialisere en ArrayList. Jeg har en antal objekter af
> klassen Index som skal beholdes i ArrayListen. Det hele går godt
indtil jeg
> skal hive disse Index objekter ud af ArrayListen. Alle indexerne
bliver til
> den sidste Index object jeg har puttet i ArrayListen, og det kan jeg
ikke
> forestå hvorfor?

Jeg vil gætte på at problemet er at du et eller andet sted glemmer at
du har med referencer til objekter at gøre. Dvs. at du får alle tre
Index'er til at pege på samme stykke hukommelse.
Jeg kan godt nok ikke se der er noget galt med den kode du har sendt
med, men hvis du viser os noget mere (fx Index klassen) så er der
større chance for mere udførlig hjælp.

Mvh.
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

bah (21-01-2002)
Kommentar
Fra : bah


Dato : 21-01-02 16:18

Jo, det kan jeg godt. Det er klassen Index:

public class Index{
private static String name=null;
private static int amount=0;
private static int antal=0;

public Index(String name,int amount,int antal){
this.name=name;
this.amount=amount;
this.antal=antal;
}//constructor

public String getName(){
return name;
}
public int getAmount(){
return amount;
}
public int getAntal(){
return interval;
}

public String toString(){
return getName().toString() + " " + Integer.toString(getAmount()) +
" " + Integer.toString(getAntal());
}

}//class ends
-------------------------
og i klassen MyArray har jeg:

public class MyArray {
static ArrayList a;

public MyArray() throws IOException {
a = new ArrayList();
}//constructor
..
..
..
}class ends
--------------------------------



Martin Ehmsen (21-01-2002)
Kommentar
Fra : Martin Ehmsen


Dato : 21-01-02 16:29

bah wrote:

> Jo, det kan jeg godt. Det er klassen Index:
>
> public class Index{
> private static String name=null;
> private static int amount=0;
> private static int antal=0;

Der er problemet, du bruger static variable
Dvs. for alle de instancer du opretter af Index klassen så vil der kun
findes en variabel med navn: name, amount og antal.
Dvs. når du opdatere dem så ændres de i alle klasseren.
Fjerne static og det vil virke...

Mvh.
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

bah (21-01-2002)
Kommentar
Fra : bah


Dato : 21-01-02 17:11

Tusind tak, det virker nu
Mvh/ Emil




Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste