AnyLogic
Expand
Font size
All Implemented Interfaces:
com.anylogic.engine.internal.Child, IterableWithSize<E>, Serializable, Iterable<E>

public class AgentLinkedHashSet<E extends Agent>
extends AgentList<E>
Agent population collection based on LinkedHashSet implementation
This collection offers constant time performance for the basic operations (add, remove, contains and size) and guarantees insertion-order during iteration

Note, that due to set-based implementation, element retrieval by its index (get(int)) is extremely slow when rapidly invoked it with random index for large collections. In a similar manner, Agent.getIndex() method of agents in this collection will be slow too.
Author:
AnyLogic North America, LLC https://anylogic.com
See Also:
Serialized Form

Constructor Summary

ConstructorDescription
AgentLinkedHashSet(Agent owner) 

Method Summary

Modifier and TypeMethodDescription
void_add(E agent)
This method should not be called by user
Call add_EONAME() method of class containing embedded object with name EONAME or agent.goToPopulation( population )
boolean_remove(Agent agent)
This method should not be called by user
Call remove_EONAME() method of class containing embedded object with name EONAME or agent.goToPopulation( null )
booleancontains(Object agent)
Returns true if this agent population contains the specified element.
Eget(int index)
Returns the agent element at the specified position in this agent population.
This method is extremely slow when rapidly calling it with random index for large collections
booleanisEmpty()
Returns true if this agent population contains no elements.
Iterator<E>iterator()
Returns an iterator over the agent population.
This iterator guarantees the insertion order of elements (i.e.
intsize()
Returns the number of elements in this agent population.
If this collection contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
Stream<E>stream()
Returns a sequential Stream with this agent population as its source.
StringtoString() 

Methods inherited from class java.lang.Object

equals, getClass, hashCode, notify, notifyAll, wait, wait, wait

Methods inherited from interface java.lang.Iterable

forEach, spliterator

Constructor Details

AgentLinkedHashSet

public AgentLinkedHashSet(Agent owner)

Method Details

contains

public boolean contains(Object agent)
Returns true if this agent population contains the specified element. More formally, returns true if and only if this collection contains at least one element e such that (o==null ? e==null : o.equals(e)).
Operation runs in about constant time
Specified by:
contains in class AgentList<E extends Agent>
Parameters:
agent - element whose presence in this agent population is to be tested
Returns:
true if this agent population contains the specified element

isEmpty

public boolean isEmpty()
Description copied from class: AgentList
Returns true if this agent population contains no elements.
Specified by:
isEmpty in interface IterableWithSize<E extends Agent>
Specified by:
isEmpty in class AgentList<E extends Agent>
Returns:
true if this agent population contains no elements

iterator

public Iterator<E> iterator()
Returns an iterator over the agent population.
This iterator guarantees the insertion order of elements (i.e. the order in which agent were added to this replicated agent list).
Specified by:
iterator in interface Iterable<E extends Agent>
Specified by:
iterator in class AgentList<E extends Agent>
Returns:
an Iterator over the elements in this replicated agent

stream

public Stream<E> stream()
Description copied from class: AgentList
Returns a sequential Stream with this agent population as its source.
Overrides:
stream in class AgentList<E extends Agent>

size

public int size()
Description copied from class: AgentList
Returns the number of elements in this agent population.
If this collection contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
Specified by:
size in interface IterableWithSize<E extends Agent>
Specified by:
size in class AgentList<E extends Agent>
Returns:
the number of elements in this agent population

get

public E get(int index)
Returns the agent element at the specified position in this agent population.
This method is extremely slow when rapidly calling it with random index for large collections
Specified by:
get in interface IterableWithSize<E extends Agent>
Specified by:
get in class AgentList<E extends Agent>
Parameters:
index - index of the element to return
Returns:
the element at the specified position in this list
Throws:
IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size())

_add

@AnyLogicInternalCodegenAPI
public void _add(E agent)
Description copied from class: AgentList
This method should not be called by user
Call add_EONAME() method of class containing embedded object with name EONAME or agent.goToPopulation( population )
Specified by:
_add in class AgentList<E extends Agent>

_remove

@AnyLogicInternalCodegenAPI
public boolean _remove(Agent agent)
Description copied from class: AgentList
This method should not be called by user
Call remove_EONAME() method of class containing embedded object with name EONAME or agent.goToPopulation( null )
Specified by:
_remove in class AgentList<E extends Agent>

toString

public String toString()
Overrides:
toString in class Object