class CollectionFunctions {

    public static <S, T, R, U> Map<R, U> simpleLinkedMapKeyAndValue(Map<S, T> map, Function<S, R> keyMappingFn, Function<T, U> valueMappingFn) {

        List<Pair<R, U>> list = simpleMap(map.entrySet(), entry ->
                Pair.of(keyMappingFn.apply(entry.getKey()), valueMappingFn.apply(entry.getValue())));

        return simpleToLinkedMap(list, Pair::getKey, Pair::getValue);
    }

    private  CollectionFunctions();

}