# Einen Stack mit einer ArrayList realisieren.



## Andrags (12. Apr 2011)

Hallo,

Wir haben in der Praktischen Informatik die Aufgabe bekommen, eine Stackklasse
mit hilfe einer ArrayList zu realisieren. An sich nicht schwer, nur habe ich probleme mit
der Initialisierung...
Mein erster Lösungsansatz war folgender:
[Java]
        private ArrayList<Object> stacklist;
	private int counter;

public ArrayListStack(Object o)
    {
    	stacklist = new ArrayList<o>();
    	counter = -1;
    }
[/Java]

Was natürlich völliger Quark ist, da ich so ja schon mindestens ein Objekt haben muss, um den Stack überhaupt zu initialisieren. Kann mir da jemand einen Anstoß geben?

MfG


----------



## muckelzwerg (12. Apr 2011)

In die <> Klammern gehört ein Typ und kein Objekt. So wie Du es weiter oben schon richtig gemacht hast. Also wieder <Object>();

ArrayList (Java 2 Platform SE v1.4.2)
Java ArrayList Juergen Kneller
Java ist auch eine Insel – 11.3 Listen
...


----------



## Final_Striker (12. Apr 2011)

Wenn du ein Stack erzeugst, hast du noch keine Elemente drin. Um Elemente hinzufügen oder entfernen, nutzt du die Methoden push und pop.
Einen counter brauchst du übrigens auch nicht. Die ArrayList hat eine Methode size(), die dir die Länge der Liste zurück gibt.


----------



## Andrags (13. Apr 2011)

Hey,

Also mein Problem ist folgendes, wir sollen nur mit Hilfe einer ArrayList eine Stackklasse nachbauen!
Meine Klasse ArrayListStack<E> soll sich als genauso verhalten wie die Klasse Stack<E>.
Dafür müsste ich jedoch wissen, wie ich den Typen, als das E, richtig initialisiere.
Meine Klasse muss also wie der bereits vorhandene Stack mit einem Typen initialisiert werden, den es dann auch nur halten kann.
(z.b. ArrayListStack<Integer> hält demzufolge nur Integer).
Und wie ich das mache weiß ich leider nicht 

Wir dürfen für die Aufgabe keinen festen Typen vordefinieren. Aber danke für die Antworten

Lg


----------



## Marcinek (13. Apr 2011)

Dann musst du 
	
	
	
	





```
ArrayList<E> meinStack = new ArrayList<E>();
```
 machen.

und dann


```
public E pop();
```
 und 
	
	
	
	





```
public void push (E newElement);
```

Mehr Infos:

AngelikaLanger.com - Java Generics - Einführung - Angelika Langer Training/Consulting


----------

