Class Interner<E>

java.lang.Object
org.eclipse.net4j.util.ref.Interner<E>

public class Interner<E> extends Object
Since:
3.3
Author:
Ed Merks
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected static class 
    A weak reference holder that caches the hash code of the referent and is chained in the entries to handle collisions.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    Interner(int minimumCapacity)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    Adds a new entry, ensures the capacity is sufficient and increases the size.
    protected Interner.Entry<E>
    createEntry(E object, int hashCode)
     
    protected boolean
    equals(E object, E otherObject)
    Returns true if the two objects are to be considered equal.
    protected Interner.Entry<E>
    getEntry(int hashCode)
    Gets the first entry in the table with exactly the given hash code.
    void
    grow(int minimumCapacity)
    Ensures that the set has at least the specifies capacity.
    protected int
    hashCode(E object)
     
    intern(E object)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Interner

      public Interner()
    • Interner

      public Interner(int minimumCapacity)
  • Method Details

    • grow

      public void grow(int minimumCapacity)
      Ensures that the set has at least the specifies capacity. Higher capacity ensures fewer collisions hence faster lookup. Does nothing if the specified capacity is smaller than the current capacity.
    • intern

      public E intern(E object)
    • getEntry

      protected Interner.Entry<E> getEntry(int hashCode)
      Gets the first entry in the table with exactly the given hash code. It's very useful to call Interner.Entry.getNextEntry() to yield the next entry with exactly this same hash code.
    • hashCode

      protected int hashCode(E object)
    • equals

      protected boolean equals(E object, E otherObject)
      Returns true if the two objects are to be considered equal. The first object will always be the one passed in as an argument to intern(Object).
    • createEntry

      protected Interner.Entry<E> createEntry(E object, int hashCode)
    • addEntry

      protected void addEntry(Interner.Entry<E> entry)
      Adds a new entry, ensures the capacity is sufficient and increases the size.