当前位置: 技术问答>java相关
为什么要自定义一个Vector类?
来源: 互联网 发布时间:2015-06-05
本文导语: 看公司源码的时候 看到下面这么一个类 主要是在分页处理的时候 来保存当前要显示页的记录的 我不是很明白,为什么要自定义这么一个类 而不直接使用Vector,或者是其他的Collection API呢? import com.XXX.Base; /* * T...
看公司源码的时候
看到下面这么一个类
主要是在分页处理的时候
来保存当前要显示页的记录的
我不是很明白,为什么要自定义这么一个类
而不直接使用Vector,或者是其他的Collection API呢?
import com.XXX.Base;
/*
* Title: 对象数组类
* Description 提供所有对象的数组类
* Copyright
* Company
* @author
* @version 1.0
*/
/**
* 该类为在JAVA 1.1规范下编程提供一个安全使用的Vector类
*/
public class MyVector implements Cloneable
{
/****************************************************************************
* 数据成员
***************************************************************************/
protected Object elementData[];
private int elementCount;
/****************************************************************************
* 构造器
***************************************************************************/
public MyVector()
{
elementData=new Object[10];
}
/****************************************************************************
* 对外接口
***************************************************************************/
/**
* 添加元素
* @param obj
*/
public void addElement(Object obj)
{
ensureCapacityHelper(elementCount + 1);
elementData[elementCount++]=obj;
}
/**
* 替换指定位置的元素
* @param obj
* @param index
*/
public void replaceElement(Object obj,int index)
{
if(index>=elementCount)return;
elementData[index]=obj;
}
/**
* Clone
* @return Object
*/
public Object clone()
{
try
{
MyVector v = (MyVector)super.clone();
v.elementData = new Object[elementCount];
System.arraycopy(elementData, 0, v.elementData, 0, elementCount);
return v;
}
catch (CloneNotSupportedException e)
{
throw new InternalError();
}
catch(Exception e)
{
return null;
}
}
/**
* 是否有某一元素
* @param elem
* @return boolean
*/
public boolean contains(Object elem)
{
return indexOf(elem) >= 0;
}
public Object get(int index)
{
return elementData[index];
}
public int indexOf(Object elem)
{
if(elem==null)
{
for(int i=0;i0)
{
System.arraycopy(elementData,index+1,elementData,index,numMoved);
}
elementData[--elementCount]=null;
return oldValue;
}
/**
*
*/
public void removeAll()
{
for(int i=0;i
看到下面这么一个类
主要是在分页处理的时候
来保存当前要显示页的记录的
我不是很明白,为什么要自定义这么一个类
而不直接使用Vector,或者是其他的Collection API呢?
import com.XXX.Base;
/*
* Title: 对象数组类
* Description 提供所有对象的数组类
* Copyright
* Company
* @author
* @version 1.0
*/
/**
* 该类为在JAVA 1.1规范下编程提供一个安全使用的Vector类
*/
public class MyVector implements Cloneable
{
/****************************************************************************
* 数据成员
***************************************************************************/
protected Object elementData[];
private int elementCount;
/****************************************************************************
* 构造器
***************************************************************************/
public MyVector()
{
elementData=new Object[10];
}
/****************************************************************************
* 对外接口
***************************************************************************/
/**
* 添加元素
* @param obj
*/
public void addElement(Object obj)
{
ensureCapacityHelper(elementCount + 1);
elementData[elementCount++]=obj;
}
/**
* 替换指定位置的元素
* @param obj
* @param index
*/
public void replaceElement(Object obj,int index)
{
if(index>=elementCount)return;
elementData[index]=obj;
}
/**
* Clone
* @return Object
*/
public Object clone()
{
try
{
MyVector v = (MyVector)super.clone();
v.elementData = new Object[elementCount];
System.arraycopy(elementData, 0, v.elementData, 0, elementCount);
return v;
}
catch (CloneNotSupportedException e)
{
throw new InternalError();
}
catch(Exception e)
{
return null;
}
}
/**
* 是否有某一元素
* @param elem
* @return boolean
*/
public boolean contains(Object elem)
{
return indexOf(elem) >= 0;
}
public Object get(int index)
{
return elementData[index];
}
public int indexOf(Object elem)
{
if(elem==null)
{
for(int i=0;i0)
{
System.arraycopy(elementData,index+1,elementData,index,numMoved);
}
elementData[--elementCount]=null;
return oldValue;
}
/**
*
*/
public void removeAll()
{
for(int i=0;i