# Elemente im ArrayList vergleichen



## kubi (8. Feb 2006)

HI 2 ALL!

zunaechst mein angefangener code:


```
public class Start{
    public static void main(String[] args){
        ArrayList<Object> list = new ArrayList<Object>();
        list.add(new DataStructure(1,"string1","string2", 1.4f);
        list.add(new DataStructure(2,"string2","string3", 2.4f);
        list.add(new DataStructure(3,"string3","string4", 3.4f);
        
        for(Iterator it = list.iterator(); it.hasNext();){
            DataStructure dataStructure = (DataStructure) it.next();
            if(dataStructure.getFieldB().equlas(dataStructure.getFieldC())
                System.out.println("OK");
        }
    }
}



class DataStructure{
    int fieldA;
    String fieldB;
    String fieldC;
    float fieldD;


    DataStructure(int fieldA, String fieldB, String fieldC, float fieldD){
        this.fieldA = fieldA;
        this.fieldB = fieldB;
        this.fieldC = fieldC;
        this.fieldD = fieldD;
    }


    public int getFieldA(){
        return fieldA;
    }
        :
        :
        :
}
```

was ich machen will, ist etwa folgendes:

wenn der String des fieldC an der Position k gleich dem String des fieldB an der Position k+1 ist, soll die Differenz zwischen fieldD(Position k+1) und fieldD(Position k) gebildet werden.

ich will also ueberkreuzt fieldB und fieldC vergleichen.  :? 

bis jetzt hab ichs lediglich geschafft, die Elemente einer Reihe vergleichen zu koennen. 

Ich weiss nicht, wie ich an die Position der Elemente in der Liste komme, um dann weitere Operationen durchzufuehren.

Bedanke mich fuer jeden vorschlag schon im voraus!

CHEERS!

kubi.

ps: englische tastatur. keine umlaute. sorry!


----------



## SamHotte (8. Feb 2006)

List.get(index)?
API schauen ...


----------



## SlaterB (8. Feb 2006)

vielleicht lassen dich diese Möglichkeiten klarer sehen?

```
Iterator it = list.iterator();
DataStructure vorderes = (DataStructure) it.next();
DataStructure hinteres = null;

for(;it.hasNext();){
   hinteres = vorderes;
   vorderes = (DataStructure) it.next();
   if(hinteres.getFieldB().equlas(vorderes.getFieldC())
         System.out.println("OK");
   } 
}

--------------------------



for(int k=0; k<list.size()-1;k++){
   if(((DataStructure) list.get(k)).getFieldB().equlas(((DataStructure) list.get(k+1)).getFieldC())
         System.out.println("OK");
   } 
}
```


----------



## norman (8. Feb 2006)

SlaterB hat gesagt.:
			
		

> ```
> for(;it.hasNext();)
> ```


nebenfrage: gibt es hier - von der lesbarkeit abgesehen - einen nennenswerten unterschied zu 
	
	
	
	





```
while (it.hasNext())
```


----------



## SlaterB (8. Feb 2006)

wohl nicht, lesbarer ist das andere auch noch


----------



## norman (8. Feb 2006)

SlaterB hat gesagt.:
			
		

> wohl nicht, lesbarer ist das andere auch noch


freak  :shock:


----------



## SlaterB (8. Feb 2006)

keine Sorge, ich meinze mit 'das andere' ja deine Variante


----------



## kubi (8. Feb 2006)

dank fuer die hilfestellung!

werd mich dann mal dran setzen!

PS: bin neu im forum. was ist zu tun, wenn ich zum gleichen posting eine weitere frage habe. neu posten?

danke!

catch u!


----------



## Leroy42 (8. Feb 2006)

Kommt drauf an: Was heißt zum gleichen Posting?

Wenn du herausbekommen hast wie du die Elemente
vergleichst und diese Liste nun in einer Tabelle (JTable)
in einer GUI-Anwendung darstellen willst und dabei
Probleme hast, hilft dir der Thread mit dem Namen

_Elemente im ArrayList vergleichen_

nicht wirklich weiter  :autsch: 

Auf jeden Fall wirst du mit diesem Namen nicht
gerade die JTable-Gurus anlocken


----------



## SlaterB (8. Feb 2006)

wenns der gleiche Code weitergedacht zu einem neu aufgetreten Problem ist kannst es ruhig erstmal hier versuchen,
zumindest 1-2 Stunden warten und wenn dann keiner kommt kannst du immer noch einen neuen Thread machen


----------

