Class Interval<E extends java.lang.Number>

java.lang.Object
de.kappich.pat.gnd.utils.Interval<E>
All Implemented Interfaces:
java.lang.Comparable<Interval<E>>

public class Interval<E extends java.lang.Number>
extends java.lang.Object
implements java.lang.Comparable<Interval<E>>
Eine generische Klasse zur Verwaltung von Intervallen von Zahlen.

Die Klasse Interval dient zur Verwaltung von Intervalle der Klasse E, die die Klasse Number erweitert. Jedes Intervall hat eine Untergrenze und eine Obergrenze, wobei es keine festgelegte Interpretation gibt, ob diese Werte zum Intervall dazu gehören oder nicht. Daneben gibt es noch einen Zähler, mit dessen Hilfe ansonsten gleiche Intervalle in einer Menge koexistieren können.

  • Constructor Summary

    Constructors
    Constructor Description
    Interval​(E lowerBound, E upperBound)
    Konstruiert ein Intervall aus den übergebenen Grenzen.
  • Method Summary

    Modifier and Type Method Description
    int compareTo​(Interval<E> o)  
    boolean equals​(java.lang.Object o)  
    Interval<E> getCopy()
    Gibt ein neues Intervall zurück, dass dieselben unteren und oberen Schranken besitzt, und auch denselben Zählerwert.
    int getCounter()
    Der Getter des Zählers.
    E getLowerBound()
    Der Getter der unteren Grenze.
    E getUpperBound()
    Der Getter der oberen Grenze.
    int hashCode()
    Der Hashcode eines Intervalls hängt nur von der oberen und unteren Grenze ab, nicht aber vom Zähler.
    Interval<E> intersection​(Interval<E> o)
    Gibt die Schnittmenge der beiden Intervalle zurück oder null, wenn der Schnitt leer ist.
    boolean intersects​(Interval<E> o)
    Gibt true zurück, wenn die beiden Intervalle im Sinne abgeschlossener Intervalle eine nicht-leere Schnittmenge haben.
    double length()
    Die Länge eines Intervalls ist die Differenz von oberer und unterer Grenze.
    void setCounter​(int counter)
    Der Setter des Zählers.
    java.lang.String toString()  

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Interval

      public Interval​(E lowerBound, E upperBound)
      Konstruiert ein Intervall aus den übergebenen Grenzen.
      Parameters:
      lowerBound - die untere Grenze
      upperBound - die obere Grenze
  • Method Details

    • getLowerBound

      public E getLowerBound()
      Der Getter der unteren Grenze.
      Returns:
      die untere Grenze
    • getUpperBound

      public E getUpperBound()
      Der Getter der oberen Grenze.
      Returns:
      die obere Grenze
    • getCounter

      public int getCounter()
      Der Getter des Zählers.
      Returns:
      der Zählerwert
    • setCounter

      public void setCounter​(int counter)
      Der Setter des Zählers.
      Parameters:
      counter - neue Zählerwert
    • intersects

      public boolean intersects​(Interval<E> o)
      Gibt true zurück, wenn die beiden Intervalle im Sinne abgeschlossener Intervalle eine nicht-leere Schnittmenge haben.
      Parameters:
      o - ein Intervall
      Returns:
      true genau dann, wenn die beiden Intervalle im Sinne abgeschlossener Intervalle eine nicht-leere Schnittmenge haben
    • intersection

      @Nullable public Interval<E> intersection​(Interval<E> o)
      Gibt die Schnittmenge der beiden Intervalle zurück oder null, wenn der Schnitt leer ist.
      Parameters:
      o - ein Intervall
      Returns:
      die Schnittmenge oder null
    • length

      public double length()
      Die Länge eines Intervalls ist die Differenz von oberer und unterer Grenze. Achtung: da keine Überprüfung stattfindet, ob diese Grenzen sinnvolle Werte enthalten oder ihre Relation stimmt, kann das Ergebnis entsprechend ausfallen.
      Returns:
      die Länge
    • getCopy

      public Interval<E> getCopy()
      Gibt ein neues Intervall zurück, dass dieselben unteren und oberen Schranken besitzt, und auch denselben Zählerwert.
      Returns:
      die Kopie
    • compareTo

      public int compareTo​(Interval<E> o)
      Specified by:
      compareTo in interface java.lang.Comparable<E extends java.lang.Number>
    • equals

      public boolean equals​(java.lang.Object o)
      Overrides:
      equals in class java.lang.Object
    • hashCode

      public int hashCode()
      Der Hashcode eines Intervalls hängt nur von der oberen und unteren Grenze ab, nicht aber vom Zähler.
      Overrides:
      hashCode in class java.lang.Object
      Returns:
      die Summe der Hashcodes der unteren und oberen Grenze
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object