Class Bijection<X extends java.lang.Comparable,​Y extends java.lang.Comparable>

java.lang.Object
xyz.cofe.collection.Bijection<X,​Y>
Type Parameters:
X - Тип значений x
Y - Тип значений y

public class Bijection<X extends java.lang.Comparable,​Y extends java.lang.Comparable>
extends java.lang.Object
Карта биективного отображения.

Каждый элемент x из X сопоставляется только один элемент y из Y,
и соответсвенно есть обратное отображение: Каждый элемент x из X сопоставляется только один элемент y из Y.

Examples
X множество ← → Y множество
x1 ← → ya
x2 ← → yb
x3 ← → yc
x4 ← → yd
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  Bijection.ResolveDuplicate
    Метод разрешения дупликатов
    static class  Bijection.ResolveNull
    Метод разрешения null ссылок
    class  Bijection.Update
    Обновление ассоциаций
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.lang.Object sync  
    protected java.util.TreeMap<X,​Y> xToYmap  
    protected java.util.TreeMap<Y,​X> yToXmap  
  • Constructor Summary

    Constructors 
    Constructor Description
    Bijection()  
    Bijection​(java.lang.Object sync)  
    Bijection​(Bijection sample, java.lang.Object sync)  
  • Method Summary

    Modifier and Type Method Description
    void assign​(Bijection<X,​Y> sample)
    Копирование данных согласно указанной карте
    void clear()
    Удаление всех значений
    Bijection<X,​Y> clone()
    Клонирование карты
    void eachXY​(java.util.function.BiConsumer<X,​Y> reciver)
    Обход всех пар x,y
    java.util.Set<Pair<X,​Y>> getEntries()
    Возвращает копию пар x,y
    X getXbyY​(Y y)
    Получение асоциации по значению
    X getXMax()
    Получение максимального значения x
    X getXMin()
    Получение минимального значения x
    java.util.NavigableSet<X> getXSet()
    Получение значений x
    Y getYbyX​(X x)
    Получение асоциации по значению
    Y getYMax()
    Получение максимаьлного значения y
    Y getYMin()
    Получение минимального значения y
    java.util.NavigableSet<Y> getYSet()
    Получение значений y
    boolean hasX​(X x)
    Проверка наличия ассоциации
    boolean hasY​(Y y)
    Проверка наличия ассоциации
    java.util.LinkedHashSet<Pair<X,​Y>> removeX​(java.lang.Iterable<X> itr)
    Удаление ассоциации
    java.util.LinkedHashSet<Pair<X,​Y>> removeX​(X x)
    Удаление ассоциации
    java.util.LinkedHashSet<Pair<X,​Y>> removeY​(java.lang.Iterable<Y> itr)
    Удаление ассоциации
    java.util.LinkedHashSet<Pair<X,​Y>> removeY​(Y y)
    Удаление ассоциации
    java.util.LinkedHashSet<Pair<X,​Y>> setXY​(java.lang.Iterable<Pair<X,​Y>> itr)
    Установка значений пар x,y
    java.util.LinkedHashSet<Pair<X,​Y>> setXY​(X x, Y y)
    Установка значения пары x,y
    java.util.LinkedHashSet<Pair<X,​Y>> setXYMap​(java.util.Map<X,​Y> itr)
    Установка значений пар x,y
    java.util.LinkedHashSet<Pair<X,​Y>> setXYMapEntries​(java.lang.Iterable<java.util.Map.Entry<X,​Y>> itr)
    Установка значений пар x,y
    int size()
    Кол-во значений в карте
    Bijection.Update update()
    Обновление ассоциаций
    Bijection.Update update​(java.util.function.BiFunction<X,​Y,​Pair<X,​Y>> fn)
    Обновление ассоциаций.
    Bijection.Update update​(java.util.function.BiFunction<X,​Y,​Pair<X,​Y>> fn, boolean strong)
    Обновление ассоциаций
    Y x​(X x)
    Получение асоциации по значению
    X y​(Y y)
    Получение асоциации по значению

    Methods inherited from class java.lang.Object

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

    • sync

      protected final java.lang.Object sync
    • xToYmap

      protected final java.util.TreeMap<X extends java.lang.Comparable,​Y extends java.lang.Comparable> xToYmap
    • yToXmap

      protected final java.util.TreeMap<Y extends java.lang.Comparable,​X extends java.lang.Comparable> yToXmap
  • Constructor Details

  • Method Details

    • getEntries

      public java.util.Set<Pair<X,​Y>> getEntries()
      Возвращает копию пар x,y
      Returns:
      пары x,y
    • eachXY

      public void eachXY​(java.util.function.BiConsumer<X,​Y> reciver)
      Обход всех пар x,y
      Parameters:
      reciver - потребитель
    • setXY

      public java.util.LinkedHashSet<Pair<X,​Y>> setXY​(X x, Y y)
      Установка значения пары x,y
      Parameters:
      x - значение
      y - значение
      Returns:
      Старые значения
    • setXY

      public java.util.LinkedHashSet<Pair<X,​Y>> setXY​(java.lang.Iterable<Pair<X,​Y>> itr)
      Установка значений пар x,y
      Parameters:
      itr - пары x,y
      Returns:
      замененные значения
    • setXYMapEntries

      public java.util.LinkedHashSet<Pair<X,​Y>> setXYMapEntries​(java.lang.Iterable<java.util.Map.Entry<X,​Y>> itr)
      Установка значений пар x,y
      Parameters:
      itr - пары x,y
      Returns:
      замененные значения
    • setXYMap

      public java.util.LinkedHashSet<Pair<X,​Y>> setXYMap​(java.util.Map<X,​Y> itr)
      Установка значений пар x,y
      Parameters:
      itr - пары x,y
      Returns:
      замененные значения
    • removeX

      public java.util.LinkedHashSet<Pair<X,​Y>> removeX​(X x)
      Удаление ассоциации
      Parameters:
      x - значение
      Returns:
      удаленная пара
    • removeX

      public java.util.LinkedHashSet<Pair<X,​Y>> removeX​(java.lang.Iterable<X> itr)
      Удаление ассоциации
      Parameters:
      itr - значения
      Returns:
      удаленная пара
    • removeY

      public java.util.LinkedHashSet<Pair<X,​Y>> removeY​(Y y)
      Удаление ассоциации
      Parameters:
      y - значения
      Returns:
      удаленная пара
    • removeY

      public java.util.LinkedHashSet<Pair<X,​Y>> removeY​(java.lang.Iterable<Y> itr)
      Удаление ассоциации
      Parameters:
      itr - значения
      Returns:
      удаленная пара
    • size

      public int size()
      Кол-во значений в карте
      Returns:
      кол-во
    • clear

      public void clear()
      Удаление всех значений
    • hasX

      public boolean hasX​(X x)
      Проверка наличия ассоциации
      Parameters:
      x - значение
      Returns:
      true - есть парное значение
    • hasY

      public boolean hasY​(Y y)
      Проверка наличия ассоциации
      Parameters:
      y - значение
      Returns:
      true - есть парное значение
    • getXSet

      public java.util.NavigableSet<X> getXSet()
      Получение значений x
      Returns:
      значения
    • getYSet

      public java.util.NavigableSet<Y> getYSet()
      Получение значений y
      Returns:
      значения
    • getXMin

      public X getXMin()
      Получение минимального значения x
      Returns:
      минимальное значение
    • getXMax

      public X getXMax()
      Получение максимального значения x
      Returns:
      максимальное значение
    • getYMin

      public Y getYMin()
      Получение минимального значения y
      Returns:
      минимальное значение
    • getYMax

      public Y getYMax()
      Получение максимаьлного значения y
      Returns:
      максимальное значение
    • getYbyX

      public Y getYbyX​(X x)
      Получение асоциации по значению
      Parameters:
      x - значение
      Returns:
      ассоциированное значение
    • x

      public Y x​(X x)
      Получение асоциации по значению
      Parameters:
      x - значение
      Returns:
      ассоциированное значение
    • getXbyY

      public X getXbyY​(Y y)
      Получение асоциации по значению
      Parameters:
      y - значение
      Returns:
      ассоциированное значение
    • y

      public X y​(Y y)
      Получение асоциации по значению
      Parameters:
      y - значение
      Returns:
      ассоциированное значение
    • update

      public Bijection.Update update()
      Обновление ассоциаций
      Returns:
      обновление
    • update

      public Bijection.Update update​(java.util.function.BiFunction<X,​Y,​Pair<X,​Y>> fn, boolean strong)
      Обновление ассоциаций
      Parameters:
      fn - функция ассоциации
      strong - метод проверки ошибок true - Bijection.Update.strong() / false - Bijection.Update.simple()
      Returns:
      обновление
    • update

      public Bijection.Update update​(java.util.function.BiFunction<X,​Y,​Pair<X,​Y>> fn)
      Обновление ассоциаций. Метод проверки ошибок Bijection.Update.strong()
      Parameters:
      fn - функция ассоциации
      Returns:
      обновление
    • assign

      public void assign​(Bijection<X,​Y> sample)
      Копирование данных согласно указанной карте
      Parameters:
      sample - образец для копирования
    • clone

      public Bijection<X,​Y> clone()
      Клонирование карты
      Overrides:
      clone in class java.lang.Object
      Returns:
      клон