LimeWire collection component api

org.limewire.collection
Class FixedsizeForgetfulHashSet<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractSet<E>
          extended by org.limewire.collection.FixedsizeForgetfulHashSet<E>
All Implemented Interfaces:
Cloneable, Iterable<E>, Collection<E>, Set<E>

public class FixedsizeForgetfulHashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable

Stores a fixed size of elements as a Set and removes elements when that size is reached. FixedsizeForgetfulHashSet is a Set version of FixedsizeForgetfulHashMap. Like ForgetfulHashMap, values are "forgotten" using a FIFO replacement policy.

FixedsizeForgetfulHashSet works in constant time.

    FixedsizeForgetfulHashSet<String> ffhs = new FixedsizeForgetfulHashSet<String>(4);

    ffhs.add("Abby");
    System.out.println(ffhs);
    if(!ffhs.add("Abby"))
        System.out.println("The set already contained that item; Set contents: " + ffhs);

    ffhs.add("Bob");
    ffhs.add("Bob");
    ffhs.add("Chris");

    ffhs.add("Dan");
    System.out.println(ffhs);   
    ffhs.add("Eric");
    System.out.println(ffhs);   

    Output:
        [Abby]
        The set already contained that item; Set contents: [Abby]
        [Abby, Bob, Chris, Dan]
        [Bob, Chris, Dan, Eric]


Constructor Summary
FixedsizeForgetfulHashSet(int size)
          Constructs a new, empty set.
FixedsizeForgetfulHashSet(int size, int initialCapacity)
          Constructs a new, empty set, using the given initialCapacity.
FixedsizeForgetfulHashSet(int size, int initialCapacity, float loadFactor)
          Constructs a new, empty set, using the given initialCapacity & loadFactor.
 
Method Summary
 boolean add(E o)
          Adds the specified element to this set if it is not already present.
 void clear()
          Removes all of the elements from this set.
 FixedsizeForgetfulHashSet<E> clone()
          Returns a shallow copy of this FixedsizeForgetfulHashSet instance: the elements themselves are not cloned.
 boolean contains(Object o)
          Returns true if this set contains the specified element.
 boolean isEmpty()
           
 boolean isFull()
          Tests if the set is full.
 Iterator<E> iterator()
          Returns an iterator over the elements in this set.
 boolean remove(Object o)
          Removes the specified element from this set if it is present.
 E removeLRUEntry()
          Removes the least recently used entry from the set
 int size()
           
 
Methods inherited from class java.util.AbstractSet
equals, hashCode, removeAll
 
Methods inherited from class java.util.AbstractCollection
addAll, 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.Set
addAll, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
 

Constructor Detail

FixedsizeForgetfulHashSet

public FixedsizeForgetfulHashSet(int size)
Constructs a new, empty set.


FixedsizeForgetfulHashSet

public FixedsizeForgetfulHashSet(int size,
                                 int initialCapacity)
Constructs a new, empty set, using the given initialCapacity.


FixedsizeForgetfulHashSet

public FixedsizeForgetfulHashSet(int size,
                                 int initialCapacity,
                                 float loadFactor)
Constructs a new, empty set, using the given initialCapacity & loadFactor.

Method Detail

isFull

public boolean isFull()
Tests if the set is full.

Returns:
true, if the set is full (ie if adding any other entry will lead to removal of some other entry to maintain the fixed-size property of the set). Returns false, otherwise

removeLRUEntry

public E removeLRUEntry()
Removes the least recently used entry from the set

Returns:
The least recently used value from the set.

iterator

public Iterator<E> iterator()
Returns an iterator over the elements in this set. The elements are returned in no particular order.

Specified by:
iterator in interface Iterable<E>
Specified by:
iterator in interface Collection<E>
Specified by:
iterator in interface Set<E>
Specified by:
iterator in class AbstractCollection<E>
Returns:
an Iterator over the elements in this set.
See Also:
ConcurrentModificationException

size

public int size()
Specified by:
size in interface Collection<E>
Specified by:
size in interface Set<E>
Specified by:
size in class AbstractCollection<E>
Returns:
the number of elements in this set (its cardinality).

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Collection<E>
Specified by:
isEmpty in interface Set<E>
Overrides:
isEmpty in class AbstractCollection<E>
Returns:
true if this set contains no elements.

contains

public boolean contains(Object o)
Returns true if this set contains the specified element.

Specified by:
contains in interface Collection<E>
Specified by:
contains in interface Set<E>
Overrides:
contains in class AbstractCollection<E>
Parameters:
o - element whose presence in this set is to be tested.
Returns:
true if this set contains the specified element.

add

public boolean add(E o)
Adds the specified element to this set if it is not already present.

Specified by:
add in interface Collection<E>
Specified by:
add in interface Set<E>
Overrides:
add in class AbstractCollection<E>
Parameters:
o - element to be added to this set.
Returns:
true if the set did not already contain the specified element.

remove

public boolean remove(Object o)
Removes the specified element from this set if it is present.

Specified by:
remove in interface Collection<E>
Specified by:
remove in interface Set<E>
Overrides:
remove in class AbstractCollection<E>
Parameters:
o - object to be removed from this set, if present.
Returns:
true if the set contained the specified element.

clear

public void clear()
Removes all of the elements from this set.

Specified by:
clear in interface Collection<E>
Specified by:
clear in interface Set<E>
Overrides:
clear in class AbstractCollection<E>

clone

public FixedsizeForgetfulHashSet<E> clone()
                                   throws CloneNotSupportedException
Returns a shallow copy of this FixedsizeForgetfulHashSet instance: the elements themselves are not cloned.

Overrides:
clone in class Object
Returns:
a shallow copy of this set.
Throws:
CloneNotSupportedException

LimeWire collection component api

Copyright © 2009 Lime Wire LLC. All Rights Reserved.