# ArrayList im Konstruktor.



## Retrodoge (27. Jul 2016)

Hallo,

ich habe eine kleine Frage.
Einmal werden die Arraylisten als Parameter an den Konstruktor übergeben und im 2. Fall wird der new-Operator verwendet. 
Was ist der Unterschied bzw. was machen die beiden Fälle?
Sind das beides Möglichkeiten zum initialisieren von ArrayListen oder ist es etwas volkommen anderes?


```
private  ArrayList<Objekt1> name1;
private ArrayList<Objekt2> name2;

//Konstruktor
public classname ( ArrayList<Objekt1> name1 , ArrayList<Objekt2> name2) {

this.name1= name1;
this.name2=name2;
}
```

und 


```
private Arraylist<Objekt1> name1;
private Arraylist<Objekt2> name2;

//Konstruktor
public classname() {

this.name1= new Arraylist<Objekt1>();
this.name2= new Arraylist<Objekt2>();
}
```

Vielen Dank!


----------



## BuddaKaeks (27. Jul 2016)

Naja bei Version 1) bekommt deine Klasse von irgendwem anders eine ArrayListe, die kann bereits initialisiert sein, da kann sogar schon was drin stehn, sie kann aber auch null sein (also uninitialisiert)

In Version 2) Initialisierst du deine ArrayListe selbst. Danach ist sie leer, und erzeugt, also definitiv nicht 0.


Variante 1 ist gedacht, wenn deine Klasse Daten von woanders her benötigt
Variante 2 ist geadcht, wenn du in deiner Klasse einen COntainer brauchts, um später Daten zu speichern


----------



## Retrodoge (27. Jul 2016)

Hmm, bei Version 1 kommen die Arrayliste auch aus der gleichen Klasse. Ist quasi aufgebaut wie ein ganz normaler Konstruktor nur mit Arraylisten.


----------



## mrBrown (27. Jul 2016)

Retrodoge hat gesagt.:


> Hmm, bei Version 1 kommen die Arrayliste auch aus der gleichen Klasse. Ist quasi aufgebaut wie ein ganz normaler Konstruktor nur mit Arraylisten.


Nein, sie "kommen" vom Aufrufer des Konstruktors, und das kann alles sein. Das kann in der gleichen Klasse passieren (in static Methoden, oder aus bereits erzeugen Objekten), aber auch in jeder anderen Klasse.


----------



## Retrodoge (27. Jul 2016)

danke!


----------

