您的位置:首页 > 其它

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);
}
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  集合