设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Java >> ArrayList:用add代替remove
精品推荐
Java点击TOP10
·java笔试题
·《Thinking in Java》读书笔记
·JSP的mysql_jdbc驱动程序
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·Java Coder 常用软件下载地址
·org.apache.commons.dbcp.SQLNestedException解决办法
·Java图形界面开发:SWT全接触
·如何使用Java POI生成Excel表文件 !
·功能强大的在线网页编辑器
·一些非常不错的Struts 例子下载
编程开发点击TOP10
·ASP.NET 程序中常用的三十三种代码
·利用ASP.NET构建网上考试系统
·C#版的网站新闻发布系统
·(转)23种设计模式汇集
·设计ASP.NET新闻管理系统
·深山红叶袖珍PE工具箱V16正式版
·我的.NET书架 (入门篇)
·java笔试题
·C++经典电子书下载
·网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距
精选专题

ArrayList:用add代替remove

作者: 来源:网络文章 时间:2005-12-15 20:57:13

ArrayList:用add代替remove(1)

ArrayList是Java容器中最常见的一个类,它支持所有定义在List接口的方法。前面已经对ArrayList的源码进行了分析,可能你对它的实现不感兴趣,这里就讨论一下它的使用。

如果你对它的源码感兴趣,可以参考:http://blog.CSdn.net/treeroot/archive/2004/09/16/107041.ASPx

ArrayList里有几个常用的方法:
get(int i):效率非常高,和数组一样
add(Object obj):效率非常高
set(int index,Object obj):效率非常高
add(int index,Object obj):效率低下,这个方法比较少用到!
remove(int index):效率低下
contains(Object obj):效率低下

如果知道ArrayList的实现,就应该很清楚这些方法的效率,前三个方法效率很高,建议使用,后面三个方法是影响效率的关键!另外indexOf和lastIndexOf和Contains是一样的,因为contains就是直接调用indexOf。在数据量比较少的情况是感觉不到的,这里做一个实际的测试:有一个ArrayList,现在要除去某些元素,也就是对列表过滤。

这里有两种方法:
1.直接用remove方法,删除满足条件的元素。
2.重新生成一个ArrayList,插入不满足条件的元素。

这里使用一个非常简单的例子,一个ArrayList包含了自然数,我现在要删除其中的奇数或者偶数。因为使用remove方法原来的List就改变了,所以这里每次都重新生成一个List。

public class Test {

private static List testNew(int cnt){
List aa=new ArrayList();
for(int i=0;i<cnt;i++){
aa.add(new Integer(i));
}
//为了与下面一样

List b=new ArrayList(100);//生产新的List
for(int i=0;i<aa.size();i++){
if(i%2==0){ //加偶数
b.add(aa.get(i));
}
}
return b;
}
private static List testRemove(int cnt){
List aa=new ArrayList();
for(int i=0;i<cnt;i++){
aa.add(new Integer(i));
}
for(int i=0;i<aa.size();i++){
if(i%2!=0){ //除奇数
aa.remove(i);
}
}
return aa;//因为这里原来的List已经改变,所以在这个方法里面生产List。
}
public static void test(int total,int cnt){
long t1,t2;
t1=System.currentTimeMillis();
for(int i=0;i<total/cnt;i++)
testNew(cnt);
t2=System.currentTimeMillis();
long a=t2-t1;

t1=System.currentTimeMillis();
for(int i=0;i<total/cnt;i++)

共2页 9 7 [1] [28 :>

ArrayList:用add代替remove 相关文章:
ArrayList:用add代替remove 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com