📄 fastvector.java
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov Date: 2007-5-16 21:09:00
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: FastVector.java
import java.io.Serializable;
import java.util.Enumeration;
public class FastVector
implements Copyable, Serializable
{
public class FastVectorEnumeration
implements Enumeration
{
public final boolean hasMoreElements()
{
return m_Counter < m_Vector.size();
}
public final Object nextElement()
{
Object obj = m_Vector.elementAt(m_Counter);
m_Counter++;
if(m_Counter == m_SpecialElement)
m_Counter++;
return obj;
}
private int m_Counter;
private FastVector m_Vector;
private int m_SpecialElement;
final FastVector this$0;
public FastVectorEnumeration(FastVector fastvector1)
{
this$0 = FastVector.this;
super();
m_Counter = 0;
m_Vector = fastvector1;
m_SpecialElement = -1;
}
public FastVectorEnumeration(FastVector fastvector1, int i)
{
this$0 = FastVector.this;
super();
m_Vector = fastvector1;
m_SpecialElement = i;
if(i == 0)
m_Counter = 1;
else
m_Counter = 0;
}
}
public FastVector()
{
m_Objects = new Object[0];
m_Size = 0;
m_CapacityIncrement = 1;
m_CapacityMultiplier = 2D;
}
public FastVector(int i)
{
m_Objects = new Object[i];
m_Size = 0;
m_CapacityIncrement = 1;
m_CapacityMultiplier = 2D;
}
public FastVector(int i, int j, double d)
{
m_Objects = new Object[i];
m_Size = 0;
m_CapacityIncrement = j;
m_CapacityMultiplier = d;
}
public final void addElement(Object obj)
{
if(m_Size == m_Objects.length)
{
Object aobj[] = new Object[(int)m_CapacityMultiplier * (m_Objects.length + m_CapacityIncrement)];
System.arraycopy(((Object) (m_Objects)), 0, ((Object) (aobj)), 0, m_Size);
m_Objects = aobj;
}
m_Objects[m_Size] = obj;
m_Size++;
}
public final int capacity()
{
return m_Objects.length;
}
public final Object copy()
{
FastVector fastvector = new FastVector(m_Objects.length, m_CapacityIncrement, m_CapacityMultiplier);
fastvector.m_Size = m_Size;
System.arraycopy(((Object) (m_Objects)), 0, ((Object) (fastvector.m_Objects)), 0, m_Size);
return fastvector;
}
public final Object copyElements()
{
FastVector fastvector = new FastVector(m_Objects.length, m_CapacityIncrement, m_CapacityMultiplier);
fastvector.m_Size = m_Size;
for(int i = 0; i < m_Size; i++)
fastvector.m_Objects[i] = ((Copyable)m_Objects[i]).copy();
return fastvector;
}
public final Object elementAt(int i)
{
return m_Objects[i];
}
public final Enumeration elements()
{
return new FastVectorEnumeration(this);
}
public final Enumeration elements(int i)
{
return new FastVectorEnumeration(this, i);
}
public final Object firstElement()
{
return m_Objects[0];
}
public final int indexOf(Object obj)
{
for(int i = 0; i < m_Size; i++)
if(obj.equals(m_Objects[i]))
return i;
return -1;
}
public final void insertElementAt(Object obj, int i)
{
if(m_Size < m_Objects.length)
{
System.arraycopy(((Object) (m_Objects)), i, ((Object) (m_Objects)), i + 1, m_Size - i);
m_Objects[i] = obj;
} else
{
Object aobj[] = new Object[(int)m_CapacityMultiplier * (m_Objects.length + m_CapacityIncrement)];
System.arraycopy(((Object) (m_Objects)), 0, ((Object) (aobj)), 0, i);
aobj[i] = obj;
System.arraycopy(((Object) (m_Objects)), i, ((Object) (aobj)), i + 1, m_Size - i);
m_Objects = aobj;
}
m_Size++;
}
public final Object lastElement()
{
return m_Objects[m_Size - 1];
}
public final void removeElementAt(int i)
{
System.arraycopy(((Object) (m_Objects)), i + 1, ((Object) (m_Objects)), i, m_Size - i - 1);
m_Size--;
}
public final void removeAllElements()
{
m_Objects = new Object[m_Objects.length];
m_Size = 0;
}
public final void appendElements(FastVector fastvector)
{
setCapacity(size() + fastvector.size());
System.arraycopy(((Object) (fastvector.m_Objects)), 0, ((Object) (m_Objects)), size(), fastvector.size());
m_Size = m_Objects.length;
}
public final Object[] toArray()
{
Object aobj[] = new Object[size()];
System.arraycopy(((Object) (m_Objects)), 0, ((Object) (aobj)), 0, size());
return aobj;
}
public final void setCapacity(int i)
{
Object aobj[] = new Object[i];
System.arraycopy(((Object) (m_Objects)), 0, ((Object) (aobj)), 0, Math.min(i, m_Size));
m_Objects = aobj;
if(m_Objects.length < m_Size)
m_Size = m_Objects.length;
}
public final void setElementAt(Object obj, int i)
{
m_Objects[i] = obj;
}
public final int size()
{
return m_Size;
}
public final void swap(int i, int j)
{
Object obj = m_Objects[i];
m_Objects[i] = m_Objects[j];
m_Objects[j] = obj;
}
public final void trimToSize()
{
Object aobj[] = new Object[m_Size];
System.arraycopy(((Object) (m_Objects)), 0, ((Object) (aobj)), 0, m_Size);
m_Objects = aobj;
}
private Object m_Objects[];
private int m_Size;
private int m_CapacityIncrement;
private double m_CapacityMultiplier;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -