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

📄 transforming.java

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

import com.reddragon2046.base.utilities.data.*;
import com.reddragon2046.base.utilities.data.collections.InputIteratorAdapter;
import com.reddragon2046.base.utilities.data.util.*;
import java.util.*;

public final class Transforming
{

    private Transforming()
    {
    }

    public static OutputIterator transform(InputIterator first, InputIterator last, OutputIterator result, UnaryFunction function)
    {
        if(!first.isCompatibleWith(last))
            throw new IllegalArgumentException("iterators not compatible");
        InputIterator firstx = (InputIterator)first.clone();
        OutputIterator resultx = (OutputIterator)result.clone();
        for(; !firstx.equals(last); resultx.advance())
            resultx.put(function.execute(firstx.next()));

        return resultx;
    }

    public static Collection transform(InputIterator first, InputIterator last, Collection result, UnaryFunction function)
    {
        if(!first.isCompatibleWith(last))
            throw new IllegalArgumentException("iterators not compatible");
        for(InputIterator firstx = (InputIterator)first.clone(); !firstx.equals(last); result.add(function.execute(firstx.next())));
        return result;
    }

    public static OutputIterator transform(Collection input, OutputIterator result, UnaryFunction function)
    {
        return transform(IteratorFactory.start(input), IteratorFactory.finish(input), result, function);
    }

    public static Collection transform(Collection source, UnaryFunction function)
    {
        Collection destination = CollectionFactory.create(source.getClass());
        transform(source, destination, function);
        return destination;
    }

    public static void transformInPlace(List list, UnaryFunction function)
    {
        for(ListIterator iter = list.listIterator(); iter.hasNext(); iter.set(function.execute(iter.next())));
    }

    public static void transform(Collection source, Collection destination, UnaryFunction function)
    {
        transform(InputIteratorAdapter.start(source), InputIteratorAdapter.finish(source), destination, function);
    }

    public static OutputIterator transform(InputIterator first1, InputIterator last1, InputIterator first2, OutputIterator result, BinaryFunction function)
    {
        if(!first1.isCompatibleWith(last1))
            throw new IllegalArgumentException("iterators not compatible");
        InputIterator first1x = (InputIterator)first1.clone();
        InputIterator first2x = (InputIterator)first2.clone();
        OutputIterator resultx = (OutputIterator)result.clone();
        for(; !first1x.equals(last1); resultx.advance())
            resultx.put(function.execute(first1x.next(), first2x.next()));

        return resultx;
    }

    public static OutputIterator transform(Collection input1, Collection input2, OutputIterator result, BinaryFunction function)
    {
        return transform(IteratorFactory.start(input1), IteratorFactory.finish(input1), IteratorFactory.start(input2), result, function);
    }

    public static void transform(Collection input1, Collection input2, Collection output, BinaryFunction function)
    {
        transform(IteratorFactory.start(input1), IteratorFactory.finish(input1), IteratorFactory.start(input2), ((OutputIterator) (new InsertIterator(output))), function);
    }
}

⌨️ 快捷键说明

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