java提高篇之数组(2)-编程开发技术

java提高篇之数组(2)-编程开发技术

ID:30780231

大小:81.50 KB

页数:9页

时间:2019-01-03

java提高篇之数组(2)-编程开发技术_第1页
java提高篇之数组(2)-编程开发技术_第2页
java提高篇之数组(2)-编程开发技术_第3页
java提高篇之数组(2)-编程开发技术_第4页
java提高篇之数组(2)-编程开发技术_第5页
资源描述:

《java提高篇之数组(2)-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、java提高篇Z数组(2)-编程开发技术java提高篇之数组(2)原文出处:chenssy前面一节主要介绍了数组的基本概念,对什么是数组稍微深入了一点点,在这篇博文中主要介绍数组的其他方面。三.性能?请优先考虑数组在java屮有很多方式来存储一系列数据,而且在操作上面比数组方使的多?但为什么我们还需要使用数组,而不是替代它呢?数组与其他种类的容器之间的区别有三个方面:效率、类型和保存基本类型的能力。在中,数组是一种效率最高的存储和随机访问对彖引用序列的方式。在项目设计中数组使用的越来越少了,而且它确实是没有List、Set这些集合使用方便,但是在某些方面数组还

2、是存在一些优势的,例如:速度,而且集合类的底层也都是通过数组來实现的。这是ArrayList的add()publicbooleanadd(Ee){ensureCapacity(size+1);//IncrementsmodCount!!elemenlData[size++]=e;returntrue;}下面利用数组和list来做一些操作比较。一、求和Longtimel=System,currenlTimeMi11is();for(inti=0;i<100000000;i++){sum+=arrays[i%10];}Longtime2二System.ciHTen

3、tTimeMillis();System,out.println(z,数组求和所花费时间:"+(time2-timel)+"毫秒〃);Longtimc3=Systcm.currcntTimcMillis();for(inti=0;i<100000000;i++){sum+二list.get(i%10);}Longtime4=System.currentTimeMillis();System,out.printin(z,List求和所花费时间:〃+(time4-time3)+〃毫秒〃);Output:数组求和所花费时间:696毫秒List求和所花费时间:3498

4、毫秒从上面的时间消耗上面来说数组对于基本类型的求和计算的速度是集合的5倍左右。其实在list集合中,求和当中有一个致命的动作:list.get(i)。这个动作是进行拆箱动作,Integer对象通过intValue方法自动转换成一个int基木类型,在这里就产生了不必要的性能消耗。?所以在性能要求较高的场景中请优先考虑数组。四、变长数组?数组是定长的,一旦初始化声明后是不可改变长度的。这对我们在实际开发中是非常不方便的,聪明的我们肯定是可以找到方法来实现的。就如java不能实现多重继承一样,我们一样可以利用内部类和接口來实现(请参考:jewa提高篇(九)一-实现多

5、重继承)。那么如何来实现变长数组呢?我们可以利用List集合add方法里而的扩容思路来模拟实现。下面是ArrayList的扩容方法:publicvoidensureCapacity(intminCapacity){modCount++;intoldCapacity=clemcntData・lcngth;/***若当前需要的长度超过数组长度时进行扩容处理*/if(minCapacity>oldCapacity){ObjectoldData[]=clemcntData;intnewCapacity=(oldCapacity*3)/2+1;//扩容if(newCap

6、acity*@paramdatas原始数组*©paramnewLen扩

7、容大小*©returnT[]*/publicstaticT[]expandCapacity(T[]datas,intnewLen){ncwLcn二ncwLcn〈0?datas・lcngth:datas・lcngth+ncwLcn;〃生成一个新的数组returnArrays.copyOf(datas,newLen);}/***@desc对数组进行扩容处理,1・5倍*©authorchenssy*©data2013-12-8*@param*@paramdatas原始数组*@rcturnT[]*/publicstaticT[]expandCapac

8、ity(T[]datas){intne

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。