Class Pointer<A>

  • Type Parameters:
    A - Элемент списка

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

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

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

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

      • elements

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

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

        protected Stack<Integer> stack
        Стек смещений
    • Constructor Detail

      • Pointer

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

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

      • lookup

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

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

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

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

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

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

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

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

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

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

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

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

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

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