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

📄 algos.java

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

import java.util.Collection;
import java.util.Iterator;

// Referenced classes of package com.reddragon2046.base.utilities.data:
//            ForwardIterator, InputIterator, BidirectionalIterator

final class Algos
{

    private Algos()
    {
    }

    public static String toString(Collection c, String name)
    {
        StringBuffer buffer = new StringBuffer();
        Iterator iter = c.iterator();
        if(iter.hasNext())
        {
            buffer.append("[");
            buffer.append(iter.next());
            for(; iter.hasNext(); buffer.append(iter.next()))
                buffer.append(", ");

            buffer.append("]");
        } else
        {
            buffer.append("[]");
        }
        return buffer.toString();
    }

    public static boolean equal(Collection c1, Collection c2)
    {
        if(c1.size() != c2.size())
            return false;
        Iterator iter1 = c1.iterator();
        Iterator iter2;
        for(iter2 = c2.iterator(); iter1.hasNext() && iter2.hasNext();)
        {
            Object obj1 = iter1.next();
            Object obj2 = iter2.next();
            if(obj1 != null ? !obj1.equals(obj2) : obj2 != null)
                return false;
        }

        return iter1.hasNext() == iter2.hasNext();
    }

    public static int replace(ForwardIterator first, ForwardIterator last, Object oldValue, Object newValue)
    {
        ForwardIterator firstx = (ForwardIterator)first.clone();
        int n = 0;
        for(; !firstx.equals(last); firstx.advance())
            if(firstx.get() != null ? firstx.get().equals(oldValue) : oldValue == null)
            {
                firstx.put(newValue);
                n++;
            }

        return n;
    }

    public static int count(InputIterator first, InputIterator last, Object object)
    {
        InputIterator firstx = (InputIterator)first.clone();
        int n = 0;
        while(!firstx.equals(last))
        {
            Object current = firstx.next();
            if(current != null ? current.equals(object) : object == null)
                n++;
        }
        return n;
    }

    public static InputIterator find(InputIterator first, InputIterator last, Object object)
    {
        InputIterator firstx;
        for(firstx = (InputIterator)first.clone(); !firstx.equals(last) && (firstx.get() != null ? !firstx.get().equals(object) : object != null); firstx.advance());
        return firstx;
    }

    public static BidirectionalIterator lastFind(BidirectionalIterator first, BidirectionalIterator last, Object object)
    {
        if(first.equals(last))
            return last;
        BidirectionalIterator lastx = (BidirectionalIterator)last.clone();
        lastx.retreat();
        while(lastx.get() != null ? !lastx.get().equals(object) : object != null)
        {
            if(first.equals(lastx))
                return last;
            lastx.retreat();
        }
        return lastx;
    }

    public static ForwardIterator remove(ForwardIterator first, ForwardIterator last, Object object)
    {
        first = (ForwardIterator)find(first, last, object);
        if(first.equals(last))
            return first;
        ForwardIterator i = (ForwardIterator)first.clone();
        i.advance();
        for(; !i.equals(last); i.advance())
            if(i.get() != null ? !i.get().equals(object) : object != null)
            {
                first.put(i.get());
                first.advance();
            }

        return first;
    }
}

⌨️ 快捷键说明

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