Java Functional Programming–IntFunction

我们可以先来看一下这个IntFunction接口源码

@FunctionalInterface
public interface IntFunction<R> {

    /**
     * Applies this function to the given argument.
     *
     * @param value the function argument
     * @return the function result
     */
    R apply(int value);
}

下面我们使用一段简单的程序来使用一下这个接口

        Map<Date, String> map = new HashMap<>(3);
        map.put(new Date(), "1");
        map.put(new Date(), "2");
        map.put(new Date(), "3");

        Date[] dates = map.keySet().toArray(Date[]::new);

上面的代码就是简单地把map中的key用数组收集起来了。我们需要深入一点再看一下这个toArray()方法:

    default <T> T[] toArray(IntFunction<T[]> generator) {
        return toArray(generator.apply(0));
    }

我们再一下API文档:

Params:
generator – a function which produces a new array of the desired type and the provided length

Posted in fp