⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 applying.java

📁 java 的源代码
💻 JAVA
字号:
package com.reddragon2046.base.utilities.data.algorithms;

import com.reddragon2046.base.utilities.data.*;
import com.reddragon2046.base.utilities.data.util.IteratorFactory;
import java.util.Collection;
import java.util.Iterator;

public final class Applying
{

    private Applying()
    {
    }

    private static UnaryFunction forEach(InputIterator first, InputIterator last, UnaryFunction function)
    {
        if(!first.isCompatibleWith(last))
            throw new IllegalArgumentException("iterators not compatible");
        for(InputIterator firstx = (InputIterator)first.clone(); !firstx.equals(last); firstx.advance())
            function.execute(firstx.get());

        return function;
    }

    public static UnaryFunction forEach(Collection collection, UnaryFunction function)
    {
        return forEach(IteratorFactory.start(collection), IteratorFactory.finish(collection), function);
    }

    private static Object inject(InputIterator first, InputIterator last, Object object, BinaryFunction function)
    {
        if(!first.isCompatibleWith(last))
            throw new IllegalArgumentException("iterators not compatible");
        for(InputIterator firstx = (InputIterator)first.clone(); !firstx.equals(last);)
            object = function.execute(object, firstx.next());

        return object;
    }

    public static Object inject(Collection collection, Object object, BinaryFunction function)
    {
        return inject(IteratorFactory.start(collection), IteratorFactory.finish(collection), object, function);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -