`
云初静
  • 浏览: 28379 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

队列的优化_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.尽量申明局部变量
分享到:
评论
5 楼 云初静 2011-11-08  
云初静 写道
luozhong915127 写道
恩,但还不只有这些呀
我的画板就这么多……就做了这么多 o(╯□╰)o

错了,是我的队列就这么多。。五子棋的还没写。弄完再说吧
4 楼 云初静 2011-11-08  
luozhong915127 写道
恩,但还不只有这些呀
我的画板就这么多……就做了这么多 o(╯□╰)o
3 楼 luozhong915127 2011-11-06  
恩,但还不只有这些呀
2 楼 云初静 2011-10-23  
JuliaAilse 写道
恩恩,还是这么总结好啊!

姐没基础,没什么话写。只能这样写。。。表学我,你还是多写点啦,呵呵
1 楼 JuliaAilse 2011-10-22  
恩恩,还是这么总结好啊!

相关推荐

    hs_err_pid25734.log

    hs_err_pid25734.log

    javacard applet 开发实例 正常运行 带jar包

    i= JZSystem.readWriteMifare(JZSystem.MIFARE_PASSWORD_READ, buf, (short)0, (short)(AmbiqConstant.BLOCKS_PER_SECTOR*AmbiqConstant.SECTOR_NUM_OF_8+AmbiqConstant.BLOCK_NUM_OF_0)); if(i==0) ...

    使用System.arraycopy()实现数组之间的复制

    使用System.arraycopy()实现数组之间的复制

    System.arraycopy实现数组之间的复制

    System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。

    java程序设计实验代码

    编写一个类MyArray,包含一个复制数组的方法,功能与System.arraycopy()相同。请使用泛型改写MyArray类实现数组复制. 请编写程序。首先在程序中定义一个枚举类型,它含有7个枚举常量,分别表示一个星期每一天的名称...

    ios 简易队列实现

    满足一些特殊需求 接口部分(队列支持需求) #import @interface XMQueue : NSObject ...- (NSArray *) arrayCopy; @end 实现方法 #import XMQueue.h @interface XMQueue() @property NSMutableArray *array; @pr

    ios实现简易队列

    本文实例为大家分享了ios实现简易队列的具体代码,供大家参考,具体内容如下 满足一些特殊需求 接口部分(队列支持需求) #import @interface XMQueue : NSObject ///队列追加 - (void)add:(id) obj; ///队列取出 - ...

    System.arraycopy和Arrays.copyOf

    个人研究所得,包含对其内部jdk源码的分析。 同时会结合ArrayList中对该两个方法的调用做进一步说明。...总结一句话:在允许的情况下,尽量调用System.arraycopy方法,实在不行再调用Arrays.copyOf方法。

    Date、SimpleDateFormat、Calendar 、arraycopy 和 StringBuilder题目小结

    关于Date、SimpleDateFormat、Calendar 、arraycopy 和 StringBuilder题目小结 对于题目的多种分析与解法

    java用arraycopy实现多击事件

    主要介绍了java用arraycopy实现多击事件的多种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Java中的数组复制(clone与arraycopy)代码详解

    主要介绍了Java中的数组复制(clone与arraycopy)代码详解,本文并未全部介绍数组复制的几种方式,仅对clone和copy的相关内容进行了解析,具有一定参考价值,需要的朋友可以了解下。

    JAVA——linux

    System.arraycopy(num, 0, ch, ch.length-num.length, num.length); String ball = new String(ch); red[i] = ball; } String[] blue = ("01,02,03,04,05,06,07," + "08,09,10,11,12,13,14,15,16").split(",...

    EmvReader Java Code

    System.arraycopy(arrays[i], 0, result, currentIndex, arrays[i].length); currentIndex += arrays[i].length; } return result; } public static byte[] getCurrentDateAsByteArray( String sFormat ) { ...

    【05-面向对象(下)】

    基本数据类型的包装类 •八大数据类型的包装类分别为:Byte、Short、Integer、Long、Character、 Float、Double、Boolean。 把基本数据类型变量包装类实例是通过对应包装类的构造器来实现的,不仅如此,8个...

    Java开发常用的方法

    产生在start和end之间的num个随机整数,返回值存在HashMap中;获取当前时间,返回时间格式(如果调用参数为true时返回yyyy-MM-dd HH:mm:ss,否则为false时返回yyyy-MM-DD不带日期格式);将HashMap内容转入数组;日期...

    记事本代码

    /** * 动态调整数组的长度 */ public class AdjustArrayLength { private static int DEFAULT_LENGTH = 10; public static Integer... System.arraycopy(src, 0, result, 0, src.length); return result; }

    jvm:用Rust编写的JVM

    有一个伟大的目标是非常重要的,例如登月。 这个计划是什么意思? 这就是实现这一目标的... 建立GC后,准备进行优化System.arraycopy(性能的关键) WebAssembly,使JVM在浏览器中工作 Java选项(-version,-server .

    Java字符串及数组操作的实例源码.zip

    ArrayCopy ArrayOfArraysArrayOfArrays2 ArrayOfStrings ArraySort CharacterOp charAtOp StringBufferOp StringOp CommandPara m

    GifDecoder

    System.arraycopy(prev, 0, dest, 0, width * height); // copy pixels if (lastDispose == 2) { // fill last image rect area with background color Graphics2D g = image.createGraphics(); Color c = ...

Global site tag (gtag.js) - Google Analytics