|  | 		    
					
        
         
          
         
	
          | |  | 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
            
             |  |  | 
 |  |