Class TreeSetGreedy<T extends IComparableProperty>

  • Type Parameters:
    T - the type of instances to store.
    All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<T>, java.util.Collection<T>, java.util.NavigableSet<T>, java.util.Set<T>, java.util.SortedSet<T>

    public class TreeSetGreedy<T extends IComparableProperty>
    extends java.util.TreeSet<T>
    implements java.util.Set<T>
    A Set that will always successfully add new instances and guarantee that all the "Comparable properties" of the contained IComparableProperty instances will build a set (no duplicates).

    Although the interface of Set is preserved and allows adding any Object only IComparableProperty instances may be added to TreeSetGreedy because it uses a proprietary Comparator.

    The added IComparableProperty instances with the lowest Number property (see IComparableProperty.getComparableProperty() ) will be returned first from the retrievable Iterator

    Warning

    If the IComparableProperty (thus meaning the member or accessed data) is changed from outside, the internal order of this set will get corrupted and iterations or add/remove calls may fail. Therefore it is necessary to remove the instance before outside modification and later on add it again.

    Author:
    Achim Westermann
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      TreeSetGreedy()
      Creates an instance with an internal Comparator to fulfill the contract of this class.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean add​(T o)
      Attempts to add the the given T.
      boolean remove​(java.lang.Object o)  
      • Methods inherited from class java.util.TreeSet

        addAll, ceiling, clear, clone, comparator, contains, descendingIterator, descendingSet, first, floor, headSet, headSet, higher, isEmpty, iterator, last, lower, pollFirst, pollLast, size, spliterator, subSet, subSet, tailSet, tailSet
      • Methods inherited from class java.util.AbstractSet

        equals, hashCode, removeAll
      • Methods inherited from class java.util.AbstractCollection

        containsAll, retainAll, toArray, toArray, toString
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        parallelStream, removeIf, stream, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
      • Methods inherited from interface java.util.Set

        addAll, clear, contains, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, size, toArray, toArray
    • Constructor Detail

      • TreeSetGreedy

        public TreeSetGreedy()
        Creates an instance with an internal Comparator to fulfill the contract of this class.
    • Method Detail

      • add

        public boolean add​(T o)
        Attempts to add the the given T.

        Specified by:
        add in interface java.util.Collection<T extends IComparableProperty>
        Specified by:
        add in interface java.util.Set<T extends IComparableProperty>
        Overrides:
        add in class java.util.TreeSet<T extends IComparableProperty>
        Parameters:
        o - the T to add.
        Returns:
        see superclass.
        See Also:
        TreeSet.add(java.lang.Object)
      • remove

        public boolean remove​(java.lang.Object o)
        Specified by:
        remove in interface java.util.Collection<T extends IComparableProperty>
        Specified by:
        remove in interface java.util.Set<T extends IComparableProperty>
        Overrides:
        remove in class java.util.TreeSet<T extends IComparableProperty>
        See Also:
        TreeSet.remove(java.lang.Object)