📄 reversing.java
字号:
package com.reddragon2046.base.utilities.data.algorithms;
import com.reddragon2046.base.utilities.data.*;
import com.reddragon2046.base.utilities.data.util.InsertIterator;
import com.reddragon2046.base.utilities.data.util.IteratorFactory;
import java.util.*;
// Referenced classes of package com.reddragon2046.base.utilities.data.algorithms:
// Swapping
public final class Reversing
{
private Reversing()
{
}
public static void reverse(BidirectionalIterator first, BidirectionalIterator last)
{
if(!first.isCompatibleWith(last))
throw new IllegalArgumentException("iterators not compatible");
if(first instanceof RandomAccessIterator)
{
RandomAccessIterator firstx = (RandomAccessIterator)first.clone();
for(RandomAccessIterator lastx = (RandomAccessIterator)last.clone(); firstx.less(lastx); firstx.advance())
{
lastx.retreat();
Swapping.iterSwap(firstx, lastx);
}
} else
{
BidirectionalIterator firstx = (BidirectionalIterator)first.clone();
BidirectionalIterator lastx = (BidirectionalIterator)last.clone();
do
{
if(firstx.equals(lastx))
return;
lastx.retreat();
if(firstx.equals(lastx))
return;
Swapping.iterSwap(firstx, lastx);
firstx.advance();
} while(true);
}
}
public static void reverse(List list)
{
reverse(IteratorFactory.start(list), IteratorFactory.finish(list));
}
public static OutputIterator reverseCopy(BidirectionalIterator first, BidirectionalIterator last, OutputIterator result)
{
if(!first.isCompatibleWith(last))
throw new IllegalArgumentException("iterators not compatible");
BidirectionalIterator lastx = (BidirectionalIterator)last.clone();
OutputIterator resultx = (OutputIterator)result.clone();
for(; !lastx.equals(first); resultx.advance())
{
lastx.retreat();
resultx.put(lastx.get());
}
return resultx;
}
public static OutputIterator reverseCopy(List input, OutputIterator result)
{
return reverseCopy(IteratorFactory.start(input), IteratorFactory.finish(input), result);
}
public static void reverseCopy(List source, Collection destination)
{
reverseCopy(IteratorFactory.start(source), IteratorFactory.finish(source), ((OutputIterator) (new InsertIterator(destination))));
}
public static List reverseCopy(List source)
{
Vector destination = new Vector(source.size());
reverseCopy(source, ((Collection) (destination)));
return destination;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -