# ArrayList von Paaren



## Heinze (20. Jul 2007)

Hallo,

ich möchte eine ArrayList erstellen, bei der jedes Element ein Paar von Strings ist, also etwa der Form ("wert1","wert2"). 

Ist dies am sinnvollsten, dazu eine eigene Klasse "Paar" zu erstellen, dann etwa  

```
ArrayList<Paar> meineListe = new ArrayList<Paar>()
```

So ganz blicke ich da noch nicht durch :wink: 

Gruß
Heinze


----------



## SlaterB (20. Jul 2007)

dies ist 'sinnvoll', ja,

'sinnvoller' würde ich nicht benutzen, 
müßig, hier ohne weitere Infos allgemeine Alternativen zu vergleichen,

'sinnvollsten' ist natürlich möglich, aber eine reine Behauptung


----------



## Heinze (21. Jul 2007)

Hieße das dann, daß die Klasse Paar in etwa so aussehen müßte:


```
public class Paar {
	
	String element1;
	String element2;
	
	Paar(String element1, String element2) {
		this.element1 = element1;
		this.element2 = element2;
	}

	String getElement1() {
		return element1;
	}

	String getElement2() {
		return element2;
	}

}
```


und ein neues Paar würde dann in meineListe so eingesetzt:


```
meineListe.add(new Paar("wert1","wert2"));
```


Aber wie kann ich dann die Werte eines bestimmten Paares, das sich in meineListe befindet, ausgeben bzw. drauf zugreifen? 



Gruß
Heinze


----------



## HoaX (21. Jul 2007)

indem du dir ein "Paar"-Object aus der liste holst und dann damit anstellst was du willst


----------



## Guest (21. Jul 2007)

Ahh, Problem selbst gelöst:

(meineListe.get(0)).getElement1()


----------



## HoaX (21. Jul 2007)

die klammer um meineListe.get(0) kannst du dir sparen


----------



## Heinze (22. Jul 2007)

Eine weitere Frage dazu habe ich noch und zwar bzgl. der Anwendung der Methode contains().
Bei "einfachen" ArrayLists des Typs String läßt sich ja die Existenz eines Objekts mittels

```
eineArrayList.contains("text")
```
überprüfen.
Wie sieht dies bei meineListe (Typ Paar) aus? Folgendes scheint ja nicht möglich zu sein

```
meineListe.contains("text1", "text2")
```

Danke schon mal für die Hilfe...
Heinze


----------



## Gast (22. Jul 2007)

```
meineListe.contains(new Paar("text1", "text2"));
```


----------



## Gast (22. Jul 2007)

musst dann allerdings noch equals und hashcode methoden überschreiben


----------



## Rock Lobster (23. Jul 2007)

Ich weiß nicht, ob es für Deinen Zweck hilfreich ist, aber eine Map wäre hierfür auch eine gute Möglichkeit. Dann kannst Du halt nicht per Index zugreifen, aber anhand des ersten Strings (in etwa so wie bei einem Wörterbuch).

Also falls Du die Maps (HashMap, TreeMap) noch nicht kanntest, solltest Du Dir die am besten mal anschauen, vielleicht ist das in Deinem Fall sogar besser geeignet.


----------

