首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-10-15 
队列的优化_arraycopy_泛型_等比num队列的优化有三:1.利用arraycopy(Object src,int srcPos,Object dest,i

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

运用:
优化1.2的应用举例:
删除指定的元素
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];
}
}


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

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


总结tips:
1.测试方法时候一个一个来,便于发现错误     
2.尽量申明局部变量 恩恩,还是这么总结好啊! 恩恩,还是这么总结好啊!
姐没基础,没什么话写。只能这样写。。。表学我,你还是多写点啦,呵呵 恩,但还不只有这些呀
恩,但还不只有这些呀
我的画板就这么多……就做了这么多 o(╯□╰)o 恩,但还不只有这些呀
我的画板就这么多……就做了这么多 o(╯□╰)o
错了,是我的队列就这么多。。五子棋的还没写。弄完再说吧

热点排行