数据结构--remove方法对LinkedList类的使用注意
来源:互联网 发布:北大青鸟网络课程介绍 编辑:程序博客网 时间:2024/05/18 06:15
直接上代码:
package com.itany.linkedList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;public class Test{ /* * remove方法对LinkedList类的使用注意 * 将表中所有值为偶数的项删除 */ public static void main(String[] args) { List<Integer> lst=new LinkedList<Integer>(); lst.add(10); lst.add(12); lst.add(4); lst.add(45); lst.add(3); List<Integer> ls=remove3(lst); System.out.println(ls); } //方法一:此方法对所有类型的表都是二次的 //对于ArrayList remove是低效率 程序花费的是二次时间 //对于LinkedList 有两个问题 其一是get的效率低,也花费二次时间;其二是remove效率低 因为达到位置i的代价也是高的(链表顺序也是用i来排序的,只是不连续存储而已) //LinkedList对于已知位置的remove是很快的 public static List remove1(List<Integer> lst) { int i=0; while(i<lst.size()) { if(lst.get(i)%2==0) { lst.remove(i); } else i++; } return lst; } //方法二:这次不用get 而是使用迭代器(使用增强for循环间接使用) 一次完成所有 //但是问题1 使用Collection接口的remove方法时,必须再次搜索该项,花费线性时间 //问题2 情况更严重,在运行时会报异常,当使用Collection接口的remove方法时,对于增强for循环使用的基础迭代器是非法的(不能你一边删除我同时迭代) public static List remove2(List<Integer> lst) { for (Integer integer : lst) { if(integer%2==0) { lst.remove(integer); } } return lst; } //方法三:为了解决删除的问题 我们使用迭代器的删除 避免集合在删除的时候迭代 直接全部由迭代器操作 //注意:!!!在迭代器iterator中删除之后,原来集合中的对应内容也相应改变 因为这个迭代器也是有该集合产生的 public static List remove3(List<Integer> lst) { Iterator<Integer> it=lst.iterator(); while(it.hasNext()) { if(it.next()%2==0) { it.remove(); } } return lst; } }
0 0
- 数据结构--remove方法对LinkedList类的使用注意
- LinkedList中的remove方法
- 使用List中remove方法时需要注意的问题
- ArrayList 与 LinkedList remove方法
- ArrayList和LinkedList add和remove方法的比较
- List 的remove方法注意点
- 使用LinkedList模拟栈数据结构的集合
- Java 中注意的细节之List.remove(int location)方法的使用
- ArrayList remove使用注意
- JAVA学习中的一点小发现:LinkedList中.poll()方法在输出时使用应注意的小点
- 对linkedlist的实现
- Java list.remove( )方法需要注意的两个地方
- Java list.remove( )方法需要注意的两个地方
- 注意list集合remove(index)方法的用法
- LinkedList基本方法使用
- [bxd学习java基本点]7.linkedList方法,remove移走的要显示元素
- java中使用list.remove需要注意的问题
- 数据结构(LinkedList的java实现)
- 读书笔记: effective C++; 条款22 和 23, 尽量用传址少用传值。
- 素数环精品
- cocos2d-x 3.2 文字显示方法代码
- 机器可以怎样学习
- Valid Parentheses
- 数据结构--remove方法对LinkedList类的使用注意
- HDU 3887 Counting Offspring(dfs序的应用)
- Ubuntu下安装cgal4.5.2计算几何库
- Adobe Photoshop CS6提示”无法完成请求,因为文件格式模块不能解析该文件“
- 几个项目规划畅想etc.
- opencv2在视频帧序列中运用鼠标extract rectangle region
- 自学数据挖掘十大算法之PageRank
- LeetCode: Rotate Array
- 3.5学习内容 宽带测速原理,RESTful架构,rpc个人理解