技巧:ArrayList删除元素时, 各种方法效率对比
来源:互联网 发布:生产加工软件 编辑:程序博客网 时间:2024/05/16 16:23
import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;public class ArrayListTest {/** * @param args */ public static void main(String[] args) { String str = "dai"; long start = System.currentTimeMillis(); List<String> list = initData(); list = removeListElementD(list,str); System.out.println("复制删使用时间:"+(System.currentTimeMillis()-start)+"Ms list的长度:"+list.size()); start = System.currentTimeMillis(); list = initData(); list = removeListElementAfter(list,str); System.out.println("后删使用时间:"+(System.currentTimeMillis()-start)+"Ms list的长度:"+list.size()); start = System.currentTimeMillis(); list = initData(); list = removeListElementBefore(list,str); System.out.println("前删使用时间:"+(System.currentTimeMillis()-start)+"Ms list的长度:"+list.size()); start = System.currentTimeMillis(); list = initData(); list = removeListElementIterator(list,str); System.out.println("迭代删使用时间:"+(System.currentTimeMillis()-start)+"Ms list的长度:"+list.size()); } private static List<String> initData() { List<String> list = new ArrayList<String>(); list.add("dai"); list.add("dai"); list.add("dai"); list.add("dai"); list.add("changya"); list.add("dai"); list.add("dai"); list.add("dai"); list.add("ya"); for(int i=0;i<10000;i++){ list.add("changya"); list.add("dai"); list.add("dai"); list.add("dai"); list.add("ya"); } return list; } /** * 删除Arraylist中值为"dai"的元素 * * 这种方式: * * 不管值为"dai"的元素在Arraylist中是否连续,都可以把值为"dai"的元素全部删除 * */ public static List<String> removeListElementD(List<String> list,String str) { List<String> tempList = new ArrayList<String>(list.size()); for(int i=0;i<list.size();i++){ if(!list.get(i).equals(str)){ tempList.add(list.get(i)); } } return tempList; } /** * 删除Arraylist中值为"dai"的元素 * * 这种方式: * * 不管值为"dai"的元素在Arraylist中是否连续,都可以把值为"dai"的元素全部删除 */ public static List<String> removeListElementAfter(List<String> list,String str) { for(int i=list.size()-1;i>=0;i--) { if(str.equals(list.get(i))) { list.remove(i); ++i;//删除了元素,迭代的下标也跟着改变 } } return list; } /** * 删除Arraylist中值为"dai"的元素 * * 这种方式: * * 不管值为"dai"的元素在Arraylist中是否连续,都可以把值为"dai"的元素全部删除 */ public static List<String> removeListElementBefore(List<String> list,String str) { for(int i=0;i<list.size();i++) { if(str.equals(list.get(i))) { list.remove(i); --i;//删除了元素,迭代的下标也跟着改变 } } return list; } /** * 删除Arraylist中值为"dai"的元素 * * 这种方式: * * 不管值为"dai"的元素在Arraylist中是否连续,都可以把值为"dai"的元素全部删除 */ public static List<String> removeListElementIterator(List<String> list,String str) { for (Iterator iterator = list.iterator(); iterator.hasNext();) {String string = (String) iterator.next();if(str.equals(string)) { iterator.remove(); } } return list; } }复制删使用时间:21Ms list的长度:20002
后删使用时间:151Ms list的长度:20002
前删使用时间:363Ms list的长度:20002
迭代删使用时间:319Ms list的长度:20002
- 技巧:ArrayList删除元素时, 各种方法效率对比
- 技巧:ArrayList删除元素时, 从尾部开始遍历,可大大提升执行效率
- java ArrayList遍历删除效率对比
- ArrayList删除元素时, 从尾部开始遍历,可大大提升执行效率
- Java ArrayList删除特定元素的方法
- java 遍历arrayList的四种方法及其效率对比
- java 遍历arrayList的四种方法及其效率对比
- Java ArrayList删除元素时失败
- ArrayList删除元素问题
- ArrayList删除指定元素
- HashMap、ArrayList删除元素
- arrayList重复元素删除
- ArrayList集合删除元素
- mysql表删除重复记录方法总结及效率对比
- 两种方法删除ArrayList里重复元素
- 两种方法删除ArrayList里重复元素
- 两种方法删除ArrayList里重复元素
- 两种方法删除ArrayList里重复元素
- java中关键字volatile的作用
- Webservice —> WSDL文件结构分析
- spring学习笔记16--Spring2.x+Hibernate3.x +Struts1.x整合开发(4)-----Hibernate3.x配置二级缓存
- 自己实现的一个字符串编码类型转换的类(VC)
- 使用自己编译的在Android上运行的内核(Linux Kernel)
- 技巧:ArrayList删除元素时, 各种方法效率对比
- Java_自动装箱_自动拆箱和String常量池(享员模式应用)
- 详解coredump
- map实现数字分离
- uva10188 - Automated Judge Script
- 梦想起航
- jqgrid使用总结
- C++沉思录 第九章第十章小结
- 2013 1月-3月第一次求职过程中的总结