eps.werkzeuge
Class Behaelter<Typ>

java.lang.Object
  extended by eps.werkzeuge.Behaelter<Typ>
All Implemented Interfaces:
Iterable<Typ>

public class Behaelter<Typ>
extends Object
implements Iterable<Typ>

Eine Art "Universalbehaelter", der Objekte eines Typs halten kann.

Beim Erzeugen eines Behaelterobjekts muss man angeben, von welchem Typ die aufzubewahrenden Objekte sein werden.
Ein Objekt kann nur dann in diesen Behaelter eingefuegt werden, wenn es noch kein gleiches Objekt im Behaelter gibt.
Wann sind zwei Objekte gleich? Diese Frage wird mit Hilfe des Dienstes "equals" beantwortet, den jedes Objekt anbietet.

Diese Behaelter merkt sich nicht, ob ein Objekt "frueher oder spaeter" als ein anderes eingefuegt wurde. Man kann als Nutzer auch nicht sagen, "wo" man das Objekt nun gerne einfuegen moechte. Anmerkung: Das Attribut speicher soll und braucht von Schuelern in der 10.Klasse nicht inspiziert zu werden. Hinweis: Komplexitaet von Diensten wird in der 10.Klasse nicht thematisiert. Entsprechend war dies bei der Umsetzung der Klasse Behaelter auch kein wichtiges Thema. Diese Klasse soll Interessierten nur prinzipiell zeigen, wie Objekte "bequem" gehalten werden koennten.

Version:
05.08
Author:
Ute Heuer

Constructor Summary
Behaelter()
          Ein leerer Behaelter wird erzeugt.
Behaelter(Collection<Typ> elemente)
          nach Kapitel 4
Erzeugt einen Behaelter, der die Elemente der angegebenen Collection enthaelt.
Behaelter(Typ[] elemente)
          nach Kapitel 3
Konstruktor zum Umfuellen eines Feldes in einen Behaelter, dabei werden gleiche Objekte nur einmal in den Behaelter eingefuellt.
 
Method Summary
 int anzahlGeben()
          Berechnet die Anzahl der Elemente im Behaelter.
 boolean entfernen(Typ element)
          Versucht ein Element aus dem Behaelter zu entfernen, welches dem eingegebenen gleicht.
 boolean enthaeltElement(Typ element)
           
 boolean equals(Behaelter<Typ> behaelterRechts)
          Kann nach Kapitel 2 verwendet werden.
 Typ herausholen()
          Entnimmt ein Element aus dem Behaelter.
 void hineinstecken(Behaelter<Typ> einzufuellendes)
          Nur fuer Interessierte
Dieser Dienst fuellt die Elemente aus einem anderen Behaelter in diesen Behaelter hinein, sofern jeweils noch kein gleiches darinnen ist.
 void hineinstecken(Typ... elemente)
          Dieser Dienst steckt eine beliebig lange Aufzaehlung von Elementen gleichen Typs in den Behaelter hinein, sofern jeweils noch kein gleiches darinnen ist.
 void hineinstecken(Typ element)
          Dieser Dienst steckt ein Element in den Behaelter hinein, sofern noch kein gleiches darinnen ist.
 String inhaltsuebersichtGeben()
          Dieser Dienst liefert Informationen ueber den Inhalt des Behaelters.
 boolean istLeer()
           
 Iterator<Typ> iterator()
          In der 10.Klasse nicht von Interesse
 Behaelter<Typ> kopieGeben()
          nach Kapitel 4
 void leeren()
          Vollstaendige Entleerung des Behaelters
 Typ schauen()
          Dieser Dienst ermoeglicht das "Anschauen" eines Elements aus dem Behaelter.
 String toString()
          Dieser Dienst liefert Informationen ueber den Inhalt des Behaelters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Behaelter

public Behaelter()
Ein leerer Behaelter wird erzeugt. Wollen Sie einen Behaelter fuer Worte erzeugen, dann geben Sie als Wert des Typ-Parameters ein: String . Wollen Sie einen Behaelter fuer ganze Zahlen erzeugen, dann geben Sie als Wert des Typ-Parameters ein: Integer . Wollen Sie einen Behaelter fuer Dreiecke erzeugen, dann geben Sie als Wert des Typ-Parameters ein: eps.einfacheGrafik.Dreieck .


Behaelter

public Behaelter(Collection<Typ> elemente)
nach Kapitel 4
Erzeugt einen Behaelter, der die Elemente der angegebenen Collection enthaelt. (Einzige in der 10.Klasse manchmal verwendete Collection ist: ArrayList.) Dabei werden gleiche Objekte nur einmal in den Behaelter eingefuellt. Die Elemente der Collection muessen alle den festgelegten Typ haben.


Behaelter

public Behaelter(Typ[] elemente)
nach Kapitel 3
Konstruktor zum Umfuellen eines Feldes in einen Behaelter, dabei werden gleiche Objekte nur einmal in den Behaelter eingefuellt. Es wird ein Behaelter erzeugt, der Elemente eines Typs enthaelt.

Parameters:
elemente - ein Feld mit Elementen eines Typs
Method Detail

anzahlGeben

public int anzahlGeben()
Berechnet die Anzahl der Elemente im Behaelter. Ausgabe: die Anzahl der Elemente


entfernen

public boolean entfernen(Typ element)
Versucht ein Element aus dem Behaelter zu entfernen, welches dem eingegebenen gleicht. Engl.: remove. Ausgabe: true, wenn das Element drin war und also entfernt werden konnte, ansonsten false. Anmerkung: Wenn die Kopie eines Behaelters durchlaufen wird, dann kann aus dem "Orginalbehaelter" mit diesem Dienst etwas entfernt werden.


enthaeltElement

public boolean enthaeltElement(Typ element)

equals

public boolean equals(Behaelter<Typ> behaelterRechts)
Kann nach Kapitel 2 verwendet werden. Motivation: Es ist sinnvoll festzulegen, wann zwei Behaelter gleich sind. Hier ist Gleichheit als Inhaltsgleichheit definiert. Zwei Behaelter sind gleich, wenn sie in ihren Elementen uebereinstimmen. Der Name des Dienstes ist von Java festgelegt. Ab Kapitel 5 kann angesprochen werden, dass equals der Oberklasse Object ueberschrieben wird.


herausholen

public Typ herausholen()
Entnimmt ein Element aus dem Behaelter. Engl.: remove Aus einem leeren Behaelter kann kein Element entnommen werden, dieser Dienst gibt dann einfach null aus.


hineinstecken

public void hineinstecken(Behaelter<Typ> einzufuellendes)
Nur fuer Interessierte
Dieser Dienst fuellt die Elemente aus einem anderen Behaelter in diesen Behaelter hinein, sofern jeweils noch kein gleiches darinnen ist. Engl.: addAll


hineinstecken

public void hineinstecken(Typ... elemente)
Dieser Dienst steckt eine beliebig lange Aufzaehlung von Elementen gleichen Typs in den Behaelter hinein, sofern jeweils noch kein gleiches darinnen ist.


hineinstecken

public void hineinstecken(Typ element)
Dieser Dienst steckt ein Element in den Behaelter hinein, sofern noch kein gleiches darinnen ist. Engl.: add .


inhaltsuebersichtGeben

public String inhaltsuebersichtGeben()
Dieser Dienst liefert Informationen ueber den Inhalt des Behaelters. Experiment: "Holen" Sie sich die Ausgabe dieses Dienstes auf die Arbeitsleiste Ihrer Umgebung. Vergeben Sie einen Namen fuer die Ausgabe, sagen wir: string1. Schicken Sie sodann die Anweisung System.out.println(string1) via Direkteingabe-Fenster ab.


istLeer

public boolean istLeer()

iterator

public Iterator<Typ> iterator()
In der 10.Klasse nicht von Interesse

Specified by:
iterator in interface Iterable<Typ>

kopieGeben

public Behaelter<Typ> kopieGeben()
nach Kapitel 4

Returns:
Liefert eine Kopie des aktuellen Behaelters, die zum Durchlauf verwendet werden kann. Dann kann waehrend des Durchlaufs in den aktuellen Behaelter (nicht in die Kopie!) etwas hineingesteckt oder herausgenommen werden. So vermeidet man Laufzeitfehler (Concurrent Modification Exception)

leeren

public void leeren()
Vollstaendige Entleerung des Behaelters


schauen

public Typ schauen()
Dieser Dienst ermoeglicht das "Anschauen" eines Elements aus dem Behaelter. Das "angeschaute" Element bleibt im Behaelter, es wird nicht entfernt. Wird versucht, ein Element aus einem leeren Behaelter anzuschauen, dann gibt dieser Dienst einfach null aus.


toString

public String toString()
Dieser Dienst liefert Informationen ueber den Inhalt des Behaelters. Er traegt den Namen, der in Java "vorgesehen ist" und nicht "inhaltsuebersichtGeben". Experiment: "Holen" Sie sich die Ausgabe dieses Dienstes auf die Arbeitsleiste Ihrer Umgebung. Vergeben Sie einen Namen fuer die Ausgabe, sagen wir: string1. Schicken Sie sodann die Anweisung System.out.println(string1) via Direkteingabe-Fenster ab.

Overrides:
toString in class Object