队列的优化_arraycopy_泛型_等比num

[color=olive][align=left][size=large][b]队列的优化有三:[/b]
1.利用arraycopy(Object src,int srcPos,Object dest,int destPos,int length))方法复制数组。这样不用每一次对队列进行操作时都要新建一个队列来存储,再复制给原队列。
2.新建数组时,可以按比例(num)增加或减少队列的长度。
3.将数据类型从string类型扩展成为泛型。

[b]运用:[/b]
[b]优化1.2的应用举例:[/b]
删除指定的元素
public void delete(int index){
//判断索引是否越界
if(index<0||index>=this.size()){
System.out.println("没有找到指定的元素!");
}
//判断能否按定比num减少数组长度。
else if((this.size()-initnum)%num==1){
// 创建数组array2
Object[] array2 = new Object [array1.length-num];
// 将数组araay1中剩余的的元素赋值到数组array2中(分步复制)
System.arraycopy(array1,0,array2,0,index);
System.arraycopy(array1,index+1,array2,index+1,this.size()-index-1);
// 将数组array2赋给数组array1
array1 = array2;
}
else{
//直接删除array1中的元素
for (int i = 0; i < index; i++)
array1[i] = array1[i];
for (int i = index + 1; i < this.size()-1; i++)
array1[i - 1] = array1[i];
}
}


[b]所犯错误:[/b]
当array1.size()for (int i = 0; i < index; i++)
array1[i] = array1[i];
for (int i = index ; i array1[i+1] = array1[i]; }
1.当i为this.size()-1时,i+1为this.size(),有可能越界
2.此句表示将index为i的元素一直赋值给index后面的所有元素

[b]疑点:[/b]
重载的构造方法怎样在ListTest中使用
public ListImp() {
}
public ListImp(int num) {
this.num = num;
}
public ListImp(int initNum, int num) {
this.initnum = initNum;
this.num = num;
}


[b]总结tips:[/b]
1.测试方法时候一个一个来,便于发现错误
2.尽量申明局部变量[/size][/align][/color]

你可能感兴趣的:(学习总结)