home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Java Collection Framework

Java bietet ein umfassendes Collection-Framework an. Eine Collection kann man sich als einen Container vorstellen, der Objekte in sich aufnehmen kann. Zudem haben diese Collections Methoden, mit welchen die Menge der enthaltenen Elemente bearbeitet werden kann, beispielsweise Elemente der Collection hinzufügen, entfernen oder sortieren.

Folgende wichtige Methoden stehen zur Verfügung:

CollectionListSetMap
int size()Object get(int index)boolean isEmpty()void put(Object key, Object value)
boolean contains(Object element)void add(Object element)boolean add(Object element)Object get(Object key)
add(Object element)void add(Object element, in index)boolean remove(Object element)int size()
boolean remove(Object element)int indexOf(Object element)

remove(Object key)


Object[] toArray()HashSet keySet()
Collection values()

 

 Bei der Implementationsklasse Queue sind einige Besonderheiten zu beachten. Einige Methoden werfen Fehler wenn das zu bearbeitende Element nicht vorhanden ist.

Queuewirft Fehlergibt Wert zurück
Einfügen

add(Element e)

Das Element wird in die Queue eingefügt, ein Fehler wird geworfen wenn nicht möglich

offer(Element e)

wenn möglich, wird das Element in die Queue eingefügt

Entfernen

remove()

liefert und löscht das erste Element, wenn Queue leer ist wird Fehler geworfen

poll()

liefert und löscht das erste Element, wenn Queue leer ist wird null zurückgegeben.

Suchen

element()

liefert aber löscht das erste Element nicht, wenn Queue leer ist wird Fehler geworfen

peek()

liefert aber löscht das erste Element nicht, wenn Queue leer ist wird null zurückgegeben.

 3.2.1 Umsetzen einer 1:n Beziehung mit JCF

 Gegeben sei foglendes UML-Diagramm, dass in Java Code mit dem JCF umgesetzt werden soll.

Die Klasse Buch bleibt unverändert, wenn zur Klasse Student nicht zurücknavigiert werden darf (einseitige Navigierbarkeit). Andernfalls müsste man ein Attribut Student einfügen mit zugehörigen getter- und setter-Methoden.

In der Klasse Student wird eine Collection, in der alle Bücher, die der Student ausgeliehen hat, gespeichert.

Ein Beispiel für eine beidseitige Navigierbarkeit finden Sie hier in den TechDocs.

package objektsammlung;

public class Buch {
  private int isbn;
  private String titel;
  public int getIsbn() {
    return isbn;
  }
  public void setIsbn(int isbn) {
    this.isbn = isbn;
  }
  public String getTitel() {
    return titel;
  }
  public void setTitel(String titel) {
    this.titel = titel;
  }
  public  Buch(int isbn, String titel) {
    super();
    this.isbn = isbn;
    this.titel = titel;
  }
}

package objektsammlung;

import java.util.Collection;
import java.util.HashSet;

public class Student {
  private String name;
  private Collection<Buch> buecher = new HashSet<Buch>();
  
  public void buchausleihen(Buch buch){
    buecher.add(buch);
  }
  
  public int getAnzahlBuecher(){
    return buecher.size();
  }
  
  public boolean isBuchAusgeliehen(Buch b) {
    return buecher.contains(b);
  }
  
  public Collection<Buch> getBuecher(){
    return buecher;
  }
}