高效删除ArrayList中的重复记录,不多说看代码
2010-10-26 22:36
323 查看
import java.util.ArrayList; import java.util.List; public class HighEffectDelete { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 1000000; i++) { list.add(i); if (i % 10 == 0) list.add(0); } Long start = System.currentTimeMillis(); effectiveDelete(list, 0); //normalDelete(list, 0); System.out.println((System.currentTimeMillis() - start)); } public static void normalDelete(List<Integer> list, Object key) { for (int i = list.size() - 1; i > -1; i--) { if (key.equals(list.get(i))) list.remove(i); } } public static void effectiveDelete(List<Integer> list, Object key) { int i = 0, j = 0, size = list.size(); while (j < size) { Integer elem = list.get(j); if (key.equals(elem)) { for (j = j + 1; j < size && key.equals(list.get(j)); j++) ; while (j < size) { Integer o = list.get(j); if (!key.equals(o)) { list.set(i, o); i++; j++; } else { break; } } } else { i++; j++; } } for (int k = size - 1; k >= i; k--) { list.remove(k); } } }
相关文章推荐
- 最高效的删除重复记录方法
- oracle最高效的删除重复记录方法
- Oracle最高效的删除重复记录方法
- 最高效的删除重复记录方法
- 高效删除大表重复记录的解决方案
- 高效快速删除Oracle表中重复记录
- 随手敲代码——删除数组重复元素(最高效版)
- Oracle删除重复记录oracle 删除重复记录的高效方法 && mysql 删除重复记录方法
- oracle 删除重复记录的高效方法
- ORACLE中最高效的删除重复记录方法
- -------------------删除重复记录--------------
- 删除数据库中重复的记录(保留一条)-oracle、mysql版
- sql查询重复记录、删除重复记录方法大全
- 删除重复记录
- 【转】oracle 删除重复记录
- 查询和删除有重复的记录
- 删除某表中某字段重复的记录
- 如何删除数据库中的重复记录(一)
- 用SQL删除重复记录的N种方法
- KIS 专业版查询物料收发汇总表(或即时库存表)出现物料代码(或名称)完全相同的重复记录