Package ch.rfin.util

Class Pairs

java.lang.Object
ch.rfin.util.Pairs

public final class Pairs
extends java.lang.Object
Utilities for working with pairs.
  • Constructor Summary

    Constructors
    Constructor Description
    Pairs()  
  • Method Summary

    Modifier and Type Method Description
    static <T1,​ T2> java.util.function.BiConsumer<T1,​T2> biConsumer​(java.util.function.Consumer<Pair<T1,​T2>> f)
    Takes a unary consumer of pairs and returns a binary consumer.
    static <T1,​ T2,​ R> java.util.function.BiFunction<T1,​T2,​R> biFunction​(java.util.function.Function<Pair<T1,​T2>,​R> f)
    Takes a unary function from pairs and returns a binary function.
    static <T1,​ T2> java.util.function.BiPredicate<T1,​T2> biPredicate​(java.util.function.Predicate<Pair<T1,​T2>> f)
    Takes a unary predicate from pairs and returns a binary predicate.
    static <T1,​ T2> java.util.function.Consumer<Pair<T1,​T2>> consumer​(java.util.function.BiConsumer<T1,​T2> f)
    Takes a binary consumer and returns a consumer that is unary for pairs.
    static <T1,​ T2,​ R> java.util.function.Function<Pair<T1,​T2>,​R> function​(java.util.function.BiFunction<T1,​T2,​R> f)
    Takes a binary function and returns a function that is unary for pairs.
    static <T> Pair<T,​T> pairFrom​(java.util.List<T> items)
    Converts a list to a pair.
    static <T,​ S> Pair<T,​S> pairFrom​(java.util.Map.Entry<T,​S> entry)
    Converts a Map.Entry to a pair.
    static <T> java.util.List<Pair<T,​T>> pairs​(java.util.List<T> items)
    Converts a list to a list of pairs.
    static <K,​ V> java.util.List<Pair<K,​V>> pairs​(java.util.Map<K,​V> items)
    Converts a Map to a list of pairs.
    static <T1,​ T2> java.util.function.Predicate<Pair<T1,​T2>> predicate​(java.util.function.BiPredicate<T1,​T2> f)
    Takes a binary predicate and returns a predicate that is unary for pairs.
    static <K,​ V> java.util.Map<K,​V> toMap​(java.util.Collection<Pair<K,​V>> items)
    Converts a collection of pairs to a Map.
    static <T,​ R> java.util.function.Function<T,​Pair<T,​R>> withId​(java.util.function.Function<T,​R> f)
    Takes a function and returns a function to pairs, where the first element is the original input and the second element is the mapping.

    Methods inherited from class java.lang.Object

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

    • Pairs

      public Pairs()
  • Method Details

    • pairFrom

      public static <T,​ S> Pair<T,​S> pairFrom​(java.util.Map.Entry<T,​S> entry)
      Converts a Map.Entry to a pair.
      Returns:
      (key, value).
    • pairFrom

      public static <T> Pair<T,​T> pairFrom​(java.util.List<T> items)
      Converts a list to a pair.
      Returns:
      (x0, x1).
    • pairs

      public static <T> java.util.List<Pair<T,​T>> pairs​(java.util.List<T> items)
      Converts a list to a list of pairs.
      Returns:
      [(x0, x1), (x2, x3), ...].
      Throws:
      java.lang.IllegalArgumentException - if uneven number of items
    • pairs

      public static <K,​ V> java.util.List<Pair<K,​V>> pairs​(java.util.Map<K,​V> items)
      Converts a Map to a list of pairs.
      Returns:
      [(k0, v0), (k1, v1), ...].
    • toMap

      public static <K,​ V> java.util.Map<K,​V> toMap​(java.util.Collection<Pair<K,​V>> items)
      Converts a collection of pairs to a Map.
      Returns:
      [(k0, v0), (k1, v1), ...].
    • function

      public static <T1,​ T2,​ R> java.util.function.Function<Pair<T1,​T2>,​R> function​(java.util.function.BiFunction<T1,​T2,​R> f)
      Takes a binary function and returns a function that is unary for pairs. Allows streamOfPairs.map(function(f)) instead of streamOfPairs.map(p -> f.apply(p._1, p._2)).
      See Also:
      Pair.apply(BiFunction)
    • biFunction

      public static <T1,​ T2,​ R> java.util.function.BiFunction<T1,​T2,​R> biFunction​(java.util.function.Function<Pair<T1,​T2>,​R> f)
      Takes a unary function from pairs and returns a binary function.
    • predicate

      public static <T1,​ T2> java.util.function.Predicate<Pair<T1,​T2>> predicate​(java.util.function.BiPredicate<T1,​T2> f)
      Takes a binary predicate and returns a predicate that is unary for pairs. Allows streamOfPairs.filter(predicate(f)) instead of streamOfPairs.filter(p -> f.test(p._1, p._2)).
      See Also:
      Pair.test(BiPredicate)
    • biPredicate

      public static <T1,​ T2> java.util.function.BiPredicate<T1,​T2> biPredicate​(java.util.function.Predicate<Pair<T1,​T2>> f)
      Takes a unary predicate from pairs and returns a binary predicate.
    • consumer

      public static <T1,​ T2> java.util.function.Consumer<Pair<T1,​T2>> consumer​(java.util.function.BiConsumer<T1,​T2> f)
      Takes a binary consumer and returns a consumer that is unary for pairs. Allows streamOfPairs.forEach(consumer(f)) instead of streamOfPairs.forEach(p -> f.accept(p._1, p._2)).
      See Also:
      Pair.accept(BiConsumer)
    • biConsumer

      public static <T1,​ T2> java.util.function.BiConsumer<T1,​T2> biConsumer​(java.util.function.Consumer<Pair<T1,​T2>> f)
      Takes a unary consumer of pairs and returns a binary consumer.
    • withId

      public static <T,​ R> java.util.function.Function<T,​Pair<T,​R>> withId​(java.util.function.Function<T,​R> f)
      Takes a function and returns a function to pairs, where the first element is the original input and the second element is the mapping. (f: x -> y) -> (g: x -> (x,y))