Class WeightedTable<T>

  • Type Parameters:
    T - The entry type
    All Implemented Interfaces:
    java.lang.Iterable<TableEntry<T>>, java.util.Collection<TableEntry<T>>
    Direct Known Subclasses:
    UnmodifiableWeightedTable

    public class WeightedTable<T>
    extends RandomObjectTable<T>
    A table of weighted entry, each entry is given a weight, the higher the weight the more likely the chance that the entry is chosen. Each roll will only return a single entries value.
    • Constructor Detail

      • WeightedTable

        public WeightedTable()
        Creates a new WeightedTable with a default roll count of 1.
      • WeightedTable

        public WeightedTable​(int rolls)
        Creates a new WeightedTable with the provided number of rolls.
        Parameters:
        rolls - The rolls for variance
      • WeightedTable

        public WeightedTable​(VariableAmount rolls)
        Creates a new WeightedTable with the provided VariableAmount for the amount of rolls and variance.
        Parameters:
        rolls - The rolls for variance
    • Method Detail

      • add

        public boolean add​(T object,
                           double weight)
        Description copied from class: RandomObjectTable
        Adds the given object to the table with the given weight.
        Overrides:
        add in class RandomObjectTable<T>
        Parameters:
        object - The new object
        weight - The weight of the object
        Returns:
        If the object was successfully added
      • addAll

        public boolean addAll​(java.util.Collection<? extends TableEntry<T>> c)
        Specified by:
        addAll in interface java.util.Collection<T>
        Overrides:
        addAll in class RandomObjectTable<T>
      • remove

        public boolean remove​(java.lang.Object entry)
        Specified by:
        remove in interface java.util.Collection<T>
        Overrides:
        remove in class RandomObjectTable<T>
      • removeObject

        public boolean removeObject​(java.lang.Object entry)
        Description copied from class: RandomObjectTable
        Removes the first instance of an entry in this table which is a WeightedObject entry and contains the given object.
        Overrides:
        removeObject in class RandomObjectTable<T>
        Parameters:
        entry - The object to remove
        Returns:
        If the table was changed as a result
      • removeAll

        public boolean removeAll​(java.util.Collection<?> c)
        Specified by:
        removeAll in interface java.util.Collection<T>
        Overrides:
        removeAll in class RandomObjectTable<T>
      • retainAll

        public boolean retainAll​(java.util.Collection<?> c)
        Specified by:
        retainAll in interface java.util.Collection<T>
        Overrides:
        retainAll in class RandomObjectTable<T>
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Collection<T>
        Overrides:
        clear in class RandomObjectTable<T>
      • recalculateWeight

        protected void recalculateWeight()
        Recalculates the total weight of all entries in this table.
      • get

        public java.util.List<T> get​(java.util.Random rand)
        Description copied from class: RandomObjectTable
        Performs a number of rolls according to the number of rolls defined by RandomObjectTable.rolls() and returns items from the table for each roll.
        Specified by:
        get in class RandomObjectTable<T>
        Parameters:
        rand - The random object to use
        Returns:
        The returned items, may be empty but not null
      • iterator

        public java.util.Iterator<TableEntry<T>> iterator()
        Specified by:
        iterator in interface java.util.Collection<T>
        Specified by:
        iterator in interface java.lang.Iterable<T>
        Overrides:
        iterator in class RandomObjectTable<T>
      • equals

        public boolean equals​(java.lang.Object o)
        Specified by:
        equals in interface java.util.Collection<T>
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Collection<T>
        Overrides:
        hashCode in class java.lang.Object
      • toString

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