Class ConcurrentIntrusiveList<T extends ConcurrentIntrusiveList.Element<T>>
- java.lang.Object
-
- io.opencensus.implcore.trace.internal.ConcurrentIntrusiveList<T>
-
@ThreadSafe public final class ConcurrentIntrusiveList<T extends ConcurrentIntrusiveList.Element<T>> extends java.lang.ObjectAnConcurrentIntrusiveList<T>is a doubly-linked list where the link pointers are embedded in the elements. This makes insertion and removal into a known position constant time.Elements must derive from the
Element<T extends Element<T>>interface:class MyClass implementsElement<MyClass>{ private MyClass next = null; private MyClass prev = null; @Override MyClass getNext() { return next; } @Override void setNext(MyClass element) { next = element; } @Override MyClass getPrev() { return prev; } @Override void setPrev(MyClass element) { prev = element; } }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceConcurrentIntrusiveList.Element<T extends ConcurrentIntrusiveList.Element<T>>This is an interface that must be implemented by any element that usesConcurrentIntrusiveList.
-
Constructor Summary
Constructors Constructor Description ConcurrentIntrusiveList(int capacity)Constructs a newConcurrentIntrusiveList.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddElement(T element)Adds the givenelementto the list.voidclear()Clears all the elements from the list.java.util.Collection<T>getAll()Returns all the elements from this list.booleanremoveElement(T element)Removes the givenelementfrom the list.intsize()Returns the number of elements in this list.
-
-
-
Field Detail
-
capacity
private final int capacity
-
size
private int size
-
head
@Nullable private T extends ConcurrentIntrusiveList.Element<T> head
-
-
Method Detail
-
addElement
public boolean addElement(T element)
Adds the givenelementto the list. If the number of elements will be larger than the capacity then the oldest element in the list will be removed.- Parameters:
element- the element to add.- Returns:
falseif the element is already in the list or if adding this element will exceed capacity.
-
removeElement
public boolean removeElement(T element)
Removes the givenelementfrom the list.- Parameters:
element- the element to remove.
-
size
public int size()
Returns the number of elements in this list.- Returns:
- the number of elements in this list.
-
clear
public void clear()
Clears all the elements from the list.
-
getAll
public java.util.Collection<T> getAll()
Returns all the elements from this list.- Returns:
- all the elements from this list.
-
-