ListIterator接口
2016-05-16 07:28
363 查看
package com.neutron.collection.iterator; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; /** * ListIterator接口案例 * @author zhanght * */ public class ListIteratorDemo { @SuppressWarnings({ "rawtypes", "unchecked" }) public static void main(String[] args) { List list = new ArrayList(); list.add("java"); list.add("mysql"); list.add("oracle"); list.add("redis"); list.add("mongodb"); list.add(".net"); list.add("html5"); list.add("css"); for(ListIterator iterator = list.listIterator(); iterator.hasNext();) { Object obj = iterator.next(); if ("java".equals(obj)){ iterator.add("vb"); } } System.out.println("add list:" + list); // add list:[java, vb, mysql, oracle, redis, mongodb, .net, html5, css] // add的元素并没有放在list末尾,而是当前元素的后面 for(ListIterator iterator = list.listIterator(); iterator.hasNext();) { Object obj = iterator.next(); if ("html5".equals(obj)){ iterator.set("html"); } } System.out.println("set:" + list); // set:[java, vb, mysql, oracle, redis, mongodb, .net, html, css] for(ListIterator iterator = list.listIterator(); iterator.hasNext();) { Object obj = iterator.next(); if ("mysql".equals(obj)){ iterator.remove(); } } System.out.println("remove:" + list); // remove:[java, vb, oracle, redis, mongodb, .net, html, css] int redisIndex = list.indexOf("redis"); System.out.println("redisIndex = " + redisIndex); int mongodbIndex = list.lastIndexOf("mongodb"); System.out.println("mongodbIndex = " + mongodbIndex); /* * 纯粹从后向前遍历数据,目前无法拿到最后的指针。 * hasPrevious,和previous有些鸡肋的感觉。 */ for(ListIterator iterator = list.listIterator(); iterator.hasPrevious();) { Object obj = iterator.previous(); int index = iterator.previousIndex(); System.out.println("value:" + obj + ",index:" + index); } } } /* public interface ListIterator<E> extends Iterator<E> { boolean hasNext(); E next(); boolean hasPrevious(); E previous(); int nextIndex(); int previousIndex(); void remove(); void set(E e); void add(E e); } */
相关文章推荐
- Ruby中的集合编写指南
- AVG 7.5.1.43 版本 序列号 集合
- SQL Server游标的使用/关闭/释放/优化小结
- 编写高质量代码改善C#程序――使用泛型集合代替非泛型集合(建议20)
- C#检查指定对象是否存在于ArrayList集合中的方法
- C#写入对象或集合类型数据到xml文件的方法
- C#中的集合用法分析
- C#常见的几种集合 ArrayList,Hashtable,List<T>,Dictionary<K,V> 遍历方法对比
- JavaScript Archive Network 集合
- Backbone.js中的集合详解
- jQuery学习7 操作JavaScript对象和集合的函数
- 网页代码常用小技巧总结第1/3页
- 详解JAVA高质量代码之数组与集合
- 基于Java回顾之集合的总结概述
- 探讨:如何使用委托,匿名方法对集合进行万能排序
- JavaScript中的集合及效率
- C#各种集合操作的性能总结
- html的DOM中document对象forms集合用法实例
- ASP.NET中实现把form表单元素转为实体对象或集合
- html的DOM中document对象anchors集合用法实例