Class Pointer<A>

java.lang.Object
xyz.cofe.collection.Pointer<A>
Type Parameters:
A - Элемент списка

public class Pointer<A>
extends java.lang.Object
Числовой указатель на смешение в списке. Основные функции:
  • Получить элемент с заданым смещение относительно указателя
  • Передвинуть указатель
  • Сохранить/Восстановить указатель из стека
Author:
gocha
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.List<A> elements
    Список элеменотов
    protected int index
    Текущее смещение
    protected java.util.Stack<java.lang.Integer> stack
    Стек смещений
  • Constructor Summary

    Constructors 
    Constructor Description
    Pointer​(java.lang.Iterable<A> tokens)
    Конструктор
    Pointer​(java.util.List<A> tokens)
    Конструткор
  • Method Summary

    Modifier and Type Method Description
    int getIndex()
    Возвращает указатель
    java.util.List<A> getList()
    Возвращает список объектов
    java.util.Stack<java.lang.Integer> getStack()
    Возвращает стек указателей
    A lookup​(int offset)
    Возвращает объект из списка относительно текущего элемента
    void move​(int offset)
    Перемещает указатель на указанное кол-во элементов
    java.lang.Integer peek()
    Посмотреть указатель на верху стека.
    java.lang.Integer pop()
    Прочитать указатель из стека и удалить верхнее значение.
    void push()
    Сохранить указатель в стеке
    boolean restore()
    Восстанавлиает ранее сохраненный указатель в стеке.
    void setIndex​(java.lang.Integer idx)
    Устанавливает новое значение указателя

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • elements

      protected java.util.List<A> elements
      Список элеменотов
    • index

      protected int index
      Текущее смещение
    • stack

      protected java.util.Stack<java.lang.Integer> stack
      Стек смещений
  • Constructor Details

    • Pointer

      public Pointer​(java.lang.Iterable<A> tokens)
      Конструктор
      Parameters:
      tokens - Исходный список объектов (копирует объекты в собственный список)
    • Pointer

      public Pointer​(java.util.List<A> tokens)
      Конструткор
      Parameters:
      tokens - Исходный список объектов
  • Method Details

    • lookup

      public A lookup​(int offset)
      Возвращает объект из списка относительно текущего элемента
      Parameters:
      offset - Смещение относительно указателя
      Returns:
      Объект или null, если смещение+указатель за границой списка объектов
    • getList

      public java.util.List<A> getList()
      Возвращает список объектов
      Returns:
      Список объектов
    • getStack

      public java.util.Stack<java.lang.Integer> getStack()
      Возвращает стек указателей
      Returns:
      Стек указателей
    • move

      public void move​(int offset)
      Перемещает указатель на указанное кол-во элементов
      Parameters:
      offset - Указатель
    • getIndex

      public int getIndex()
      Возвращает указатель
      Returns:
      Указатель
    • setIndex

      public void setIndex​(java.lang.Integer idx)
      Устанавливает новое значение указателя
      Parameters:
      idx - Указатель
    • push

      public void push()
      Сохранить указатель в стеке
    • pop

      public java.lang.Integer pop()
      Прочитать указатель из стека и удалить верхнее значение.

      Указатель НЕ перемещается на восстановленное место.

      Returns:
      Сохраненный указатель или null
      See Also:
      restore()
    • peek

      public java.lang.Integer peek()
      Посмотреть указатель на верху стека.
      Returns:
      Сохраненный указатель или null т.к. стек пуст
    • restore

      public boolean restore()
      Восстанавлиает ранее сохраненный указатель в стеке.

      Указатель перемещается на восстановленное место.

      Returns:
      true - указатель был восстановлен; false - не был, ибо стек пуст