java 15 -7 ListIterator 的特有方法

列表迭代器:
   ListIterator listIterator():List集合特有的迭代器
 该迭代器继承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法。

特有功能:
  A: boolean hasPrevious():判断是否有元素
   B:Object previous():获取上一个元素

注意:ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用。

 1 import java.util.ArrayList;
 2 import java.util.Iterator;
 3 import java.util.List;
 4 import java.util.ListIterator;
 5 public class ListIteratorDemo {
 6 public static void main(String[] args) {
 7 // 创建List集合对象
 8 List list = new ArrayList();
 9 list.add("hello");
10 list.add("world");
11 list.add("java");
12
13 // ListIterator listIterator()
14 ListIterator lit = list.listIterator(); // 子类对象
15 // while (lit.hasNext()) {
16 // String s = (String) lit.next();
17 // System.out.println(s);
18 // }
19 // System.out.println("-----------------");
20
21 // System.out.println(lit.previous());
22 // System.out.println(lit.previous());
23 // System.out.println(lit.previous());
24 // NoSuchElementException
25 // System.out.println(lit.previous());
26
27 while (lit.hasPrevious()) {
28 String s = (String) lit.previous();
29 System.out.println(s);
30 }
31 System.out.println("-----------------");
32
33 // 迭代器
34 Iterator it = list.iterator();
35 while (it.hasNext()) {
36 String s = (String) it.next();
37 System.out.println(s);
38 }
39 System.out.println("-----------------");
40
41 }
42 }
时间: 2024-10-10 06:37:11

java 15 -7 ListIterator 的特有方法的相关文章

java集合_collection子接口 list的特有方法,ArrayList类体现

/* Collection |--List:元素是有序的,元素可以重复.因为该集合体系有索引. |--ArrayList:底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删稍慢.线程不同步. |--LinkedList:底层使用的链表数据结构.特点:增删速度很快,查询稍慢.线程不同步. |--Vector:底层是数组数据结构.线程同步.被ArrayList替代了.因为效率低. |--Set:元素是无序,元素不可以重复.. List: 特有方法.凡是可以操作角标的方法都是该体系特有的方法

Java LinkedList的ListIterator

Java LinkedList的ListIterator @author ixenos ListIterator<E>是继承自Iterator<E>的接口 故,ListIterator注意点: 1.迭代器不存储所有元素的引用,只有两个指针,一个指向上一个返回得到的元素,另一个下一个未涉足的元素: 2.迭代开始前先同步内外modCount,迭代过程中检查是否同步,如果外部结构改变,则迭代快速失败(fast-fails机制): 3.ListIterator可以算半个LinkedList

java语言复制数组的四种方法

JAVA语言的下面几种数组复制方法中,哪个效率最高? B.效率:System.arraycopy > clone > Arrays.copyOf > for循环 1.System.arraycopy的用法: [java] view plain copy public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 参数:src - 源数组.srcPos - 源数组中的起

java多线程有几种实现方法,都是什么?

转自:http://www.cnblogs.com/liujichang/p/3150387.html 多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方法有两种,分别是synchronized,wait与notify 先看一下java线程运行时各个阶段的运行状态 java实现多线程有两种方法 1.继承Thread类 2.实现Runnable接口 这两种方法的共同点: 不论用哪种方法,都必须用Thread(如果是Thead子类就用它本身)产生线程,然后再调用s

Java知多少(22)方法重载

在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading). 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同. 重载是面向对象的一个基本特性. 下面看一个详细的实例. 1 public class Demo{ 2 // 一个普通的方法,不带参数 3 void test(){ 4 System.out.println("No parameters"); 5 }

将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold", "foreign exchange","fixed income", "futures", "options"}; List<String> assetList = Arrays.asList(asset);

Java并发编程:Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常.下面我们就来讨论以下这个异常出现的原因以及解决办法. 以下是本文目录大纲: 一.ConcurrentModificationException异常出现的原因 二.在单线程环境下的解决办法 三.在多线程环境下的解决方法 若有不

Java中的equals和hashCode方法

本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法. equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复.这里我们首先要明白一个问题: equals()相等的两个对象,hashcode()一定相等,equals()不相等的两个对象,却并不能证明他们的h

List接口中特有方法

import java.util.ArrayList; import java.util.List; /* List接口中特有方法: 添加 add(int index, E element) addAll(int index, Collection<? extends E> c) 获取: get(int index) indexOf(Object o) lastIndexOf(Object o) subList(int fromIndex, int toIndex) 修改: set(int i