SSJ API Documentation
Stochastic Simulation in Java
Loading...
Searching...
No Matches
umontreal.ssj.simevents.eventlist.DoublyLinked Class Reference

An implementation of EventList using a doubly linked linear list. More...

Inheritance diagram for umontreal.ssj.simevents.eventlist.DoublyLinked:
umontreal.ssj.simevents.eventlist.EventList

Public Member Functions

boolean isEmpty ()
 Returns true if and only if the event list is empty (no event is scheduled).
void clear ()
 Empties the event list, i.e., cancels all events.
void add (Event ev)
 Adds a new event in the event list, according to the time of ev.
void addFirst (Event ev)
 Adds a new event at the beginning of the event list.
void addBefore (Event ev, Event other)
 Same as add, but adds the new event ev immediately before the event other in the list.
void addAfter (Event ev, Event other)
 Same as add, but adds the new event ev immediately after the event other in the list.
Event getFirst ()
 Returns the first event in the event list.
Event getFirstOfClass (String cl)
 Returns the first event of the class cl (a subclass of Event) in the event list.
boolean remove (Event ev)
 Removes the event ev from the event list (cancels this event).
Event removeFirst ()
 Removes the first event from the event list (to cancel or execute this event).
ListIterator< EventlistIterator ()
 Returns a list iterator over the elements of the class Event in this list.

Package Functions

public< E extends Event > E getFirstOfClass (Class< E > cl)
 Returns the first event of the class E (a subclass of Event) in the event list.

Detailed Description

An implementation of EventList using a doubly linked linear list.

Each event is stored into a list node that contains a pointer to its following and preceding events. Adding an event requires a linear search to keep the event list sorted by event time and priority. Removing the first event is done in constant time because it simply removes the first list node. List nodes are recycled for increased memory management efficiency.

Definition at line 44 of file DoublyLinked.java.

Member Function Documentation

◆ add()

void umontreal.ssj.simevents.eventlist.DoublyLinked.add ( Event ev)

Adds a new event in the event list, according to the time of ev.

If the event list contains events scheduled to happen at the same time as ev, ev must be added after all these events.

Parameters
evevent to be added

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 63 of file DoublyLinked.java.

◆ addAfter()

void umontreal.ssj.simevents.eventlist.DoublyLinked.addAfter ( Event ev,
Event other )

Same as add, but adds the new event ev immediately after the event other in the list.

Parameters
evevent to be added
otherreference event after which ev will be added

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 131 of file DoublyLinked.java.

◆ addBefore()

void umontreal.ssj.simevents.eventlist.DoublyLinked.addBefore ( Event ev,
Event other )

Same as add, but adds the new event ev immediately before the event other in the list.

Parameters
evevent to be added
otherreference event before which ev will be added

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 109 of file DoublyLinked.java.

◆ addFirst()

void umontreal.ssj.simevents.eventlist.DoublyLinked.addFirst ( Event ev)

Adds a new event at the beginning of the event list.

The given event ev will occur at the current simulation time.

Parameters
evevent to be added

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 92 of file DoublyLinked.java.

◆ clear()

void umontreal.ssj.simevents.eventlist.DoublyLinked.clear ( )

Empties the event list, i.e., cancels all events.

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 54 of file DoublyLinked.java.

◆ getFirst()

Event umontreal.ssj.simevents.eventlist.DoublyLinked.getFirst ( )

Returns the first event in the event list.

If the event list is empty, returns null.

Returns
the first event in the event list, or null if the list is empty

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 153 of file DoublyLinked.java.

◆ getFirstOfClass() [1/2]

public< E extends Event > E umontreal.ssj.simevents.eventlist.DoublyLinked.getFirstOfClass ( Class< E > cl)
package

Returns the first event of the class E (a subclass of Event) in the event list.

If no such event is found, returns null.

Returns
the first event of class cl, or null if no such event exists in the list

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 168 of file DoublyLinked.java.

◆ getFirstOfClass() [2/2]

Event umontreal.ssj.simevents.eventlist.DoublyLinked.getFirstOfClass ( String cl)

Returns the first event of the class cl (a subclass of Event) in the event list.

If no such event is found, returns null.

Returns
the first event of class cl, or null if no such event exists in the list

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 157 of file DoublyLinked.java.

◆ isEmpty()

boolean umontreal.ssj.simevents.eventlist.DoublyLinked.isEmpty ( )

Returns true if and only if the event list is empty (no event is scheduled).

Returns
true if the event list is empty

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 50 of file DoublyLinked.java.

◆ listIterator()

ListIterator< Event > umontreal.ssj.simevents.eventlist.DoublyLinked.listIterator ( )

Returns a list iterator over the elements of the class Event in this list.

Returns
a list iterator over the elements of the class Event in this list

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 232 of file DoublyLinked.java.

◆ remove()

boolean umontreal.ssj.simevents.eventlist.DoublyLinked.remove ( Event ev)

Removes the event ev from the event list (cancels this event).

Returns true if and only if the event removal has succeeded.

Parameters
evevent to be removed
Returns
true if the event was successfully removed from the list

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 178 of file DoublyLinked.java.

◆ removeFirst()

Event umontreal.ssj.simevents.eventlist.DoublyLinked.removeFirst ( )

Removes the first event from the event list (to cancel or execute this event).

Returns the removed event. If the list is empty, then null is returned.

Returns
the first event removed from the list, or null if the list is empty

Implements umontreal.ssj.simevents.eventlist.EventList.

Definition at line 209 of file DoublyLinked.java.


The documentation for this class was generated from the following file: