org.infinispan.util
Class VisitableBidirectionalLinkedHashSet<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractSet<E>
          extended by org.infinispan.util.VisitableBidirectionalLinkedHashSet<E>
All Implemented Interfaces:
Cloneable, Iterable<E>, Collection<E>, Set<E>, ReversibleOrderedSet<E>

public class VisitableBidirectionalLinkedHashSet<E>
extends AbstractSet<E>
implements ReversibleOrderedSet<E>, Cloneable

Similar to the JDK's LinkedHashSet except that it sets the underlying LinkedHashMap's accessOrder constructor parameter to true, allowing for recording of visits. To do this, this implementation exposes a visit(Object) method to visit a key.

Since:
4.0
Author:
Manik Surtani

Constructor Summary
VisitableBidirectionalLinkedHashSet(boolean visitable)
          Constructs a new, empty linked hash set with the default initial capacity (16) and load factor (0.75).
VisitableBidirectionalLinkedHashSet(boolean visitable, Collection<? extends E> c)
          Constructs a new linked hash set with the same elements as the specified collection.
VisitableBidirectionalLinkedHashSet(boolean visitable, int initialCapacity)
          Constructs a new, empty linked hash set with the specified initial capacity and the default load factor (0.75).
VisitableBidirectionalLinkedHashSet(boolean visitable, int initialCapacity, float loadFactor)
          Constructs a new, empty linked hash set with the specified initial capacity and load factor.
 
Method Summary
 boolean add(E e)
          Adds the specified element to this set if it is not already present.
 void clear()
          Removes all of the elements from this set.
 VisitableBidirectionalLinkedHashSet clone()
           
 boolean contains(Object o)
          Returns true if this set contains the specified element.
 boolean isEmpty()
          Returns true if this set contains no elements.
 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.
 Iterator<E> reverseIterator()
           
 int size()
          Returns the number of elements in this set (its cardinality).
 void visit(E key)
          Visits the key in the underlying Map, by performing a Map.get(Object).
 
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

VisitableBidirectionalLinkedHashSet

public VisitableBidirectionalLinkedHashSet(boolean visitable,
                                           int initialCapacity,
                                           float loadFactor)
Constructs a new, empty linked hash set with the specified initial capacity and load factor.

Parameters:
visitable - if true, visiting an element (using visit(Object)) will cause that element to be moved to the end of the linked list that connects entries.
initialCapacity - the initial capacity of the linked hash set
loadFactor - the load factor of the linked hash set
Throws:
IllegalArgumentException - if the initial capacity is less than zero, or if the load factor is nonpositive

VisitableBidirectionalLinkedHashSet

public VisitableBidirectionalLinkedHashSet(boolean visitable,
                                           int initialCapacity)
Constructs a new, empty linked hash set with the specified initial capacity and the default load factor (0.75).

Parameters:
visitable - if true, visiting an element (using visit(Object)) will cause that element to be moved to the end of the linked list that connects entries.
initialCapacity - the initial capacity of the LinkedHashSet
Throws:
IllegalArgumentException - if the initial capacity is less than zero

VisitableBidirectionalLinkedHashSet

public VisitableBidirectionalLinkedHashSet(boolean visitable)
Constructs a new, empty linked hash set with the default initial capacity (16) and load factor (0.75).

Parameters:
visitable - if true, visiting an element (using visit(Object)) will cause that element to be moved to the end of the linked list that connects entries.

VisitableBidirectionalLinkedHashSet

public VisitableBidirectionalLinkedHashSet(boolean visitable,
                                           Collection<? extends E> c)
Constructs a new linked hash set with the same elements as the specified collection. The linked hash set is created with an initial capacity sufficient to hold the elements in the specified collection and the default load factor (0.75).

Parameters:
visitable - if true, visiting an element (using visit(Object)) will cause that element to be moved to the end of the linked list that connects entries.
c - the collection whose elements are to be placed into this set
Throws:
NullPointerException - if the specified collection is null
Method Detail

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

reverseIterator

public Iterator<E> reverseIterator()
Specified by:
reverseIterator in interface ReversibleOrderedSet<E>

size

public int size()
Returns the number of elements in this set (its cardinality).

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()
Returns true if this set contains no elements.

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. More formally, returns true if and only if this set contains an element e such that (o==null ? e==null : o.equals(e)).

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 e)
Adds the specified element to this set if it is not already present. More formally, adds the specified element e to this set if this set contains no element e2 such that (e==null ? e2==null : e.equals(e2)). If this set already contains the element, the call leaves the set unchanged and returns false.

Specified by:
add in interface Collection<E>
Specified by:
add in interface Set<E>
Overrides:
add in class AbstractCollection<E>
Parameters:
e - element to be added to this set
Returns:
true if this 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. More formally, removes an element e such that (o==null ? e==null : o.equals(e)), if this set contains such an element. Returns true if this set contained the element (or equivalently, if this set changed as a result of the call). (This set will not contain the element once the call returns.)

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

visit

public void visit(E key)
Visits the key in the underlying Map, by performing a Map.get(Object). This records the access and updates the ordering accordingly.

Parameters:
key - key to visit

clear

public void clear()
Removes all of the elements from this set. The set will be empty after this call returns.

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

clone

public VisitableBidirectionalLinkedHashSet clone()
Overrides:
clone in class Object

Google Analytics

Copyright © 2010 JBoss, a division of Red Hat. All Rights Reserved.