主题:arraycopy()
大家好,我是JAVA初学者,遇到了下面的问题,请高手赐教。
public class TestArrayList{
public static void main(){
}
}
class MyArrayList{
private Object os[]=new Object[3];
private int index;
//把对象o放入集合最后位置
public void add(Object o){
if(index==os.length) expand();
os[index]=o;
index++;
}
//把对象o放入集合指定的位置
public void add(int pos,Object o){
if(index==os.length) expand();
for(int i=index;i>pos;i--){
os[i]=os[i-1];
}
index++;
os[pos]=o;
}
//根据下标获得相应位置的元素
public Object get(int pos){
return os[pos];
}
//根据元素或者下标,如果元素不存在,返回-1
public int indexOf(Object o){
for(int i=0;i<index;i++){
if(o.equals(os[i])) return i;
}
return -1;
}
//判断元素是否存在
public boolean contains(Object o){
int i=indexOf(o);
return i!=-1;
}
//返回集合中元素的数量
public int size(){
return index;
}
//从数组中删掉指定下标的元素
public void remove(int pos){
index--;
for(int i=pos;i<index;i++){
os[i]=os[i+1];
}
}
private void expand(){
Object os2[]=new Object[os.length*2];
[color=FF0000]System.arraycopy(os,0,os2,os.length);[/color]
os=os2;
}
}
运行出错,是arraycopy()出了问题,大家帮忙看看,
public class TestArrayList{
public static void main(){
}
}
class MyArrayList{
private Object os[]=new Object[3];
private int index;
//把对象o放入集合最后位置
public void add(Object o){
if(index==os.length) expand();
os[index]=o;
index++;
}
//把对象o放入集合指定的位置
public void add(int pos,Object o){
if(index==os.length) expand();
for(int i=index;i>pos;i--){
os[i]=os[i-1];
}
index++;
os[pos]=o;
}
//根据下标获得相应位置的元素
public Object get(int pos){
return os[pos];
}
//根据元素或者下标,如果元素不存在,返回-1
public int indexOf(Object o){
for(int i=0;i<index;i++){
if(o.equals(os[i])) return i;
}
return -1;
}
//判断元素是否存在
public boolean contains(Object o){
int i=indexOf(o);
return i!=-1;
}
//返回集合中元素的数量
public int size(){
return index;
}
//从数组中删掉指定下标的元素
public void remove(int pos){
index--;
for(int i=pos;i<index;i++){
os[i]=os[i+1];
}
}
private void expand(){
Object os2[]=new Object[os.length*2];
[color=FF0000]System.arraycopy(os,0,os2,os.length);[/color]
os=os2;
}
}
运行出错,是arraycopy()出了问题,大家帮忙看看,