首页 > Java > java教程 > 正文

Java 列表迭代器

WBOY
发布: 2024-08-30 15:09:36
原创
1034 人浏览过

在Java中,ListIterator是一个双向迭代器,有助于逐一迭代列表中的元素。它从 Java 1.2 版本开始提供,并扩展了 Iterator 接口。与普通迭代器不同,ListIterator 支持 CRUD 操作、前向和后向迭代。此外,由于光标的位置位于调用 previous() 返回的元素和调用 next() 返回的元素之间,因此 listiterator 没有当前元素。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法

以下是 Java ListIterator 的语法。

ListIterator<T> li = list.listIterator();
登录后复制

Java 中的 ListIterator 类如何工作?

正如已经讨论过的,Java ListIterator 是一个双向迭代器,可以向前和向后遍历。为了支持此功能,有两组方法可用。

  • 正向方法,例如 hasNext()、next()、nextIndex()
  • 向后方向方法,例如 hasPrevious()、previous()、previousIndex()

这些方法将在下一节中详细讨论。

让我们看看 ListIterator 是如何工作的。

1.创建姓名列表

List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
nm.add("Elsa");
nm.add("Anna");
nm.add("payal");
登录后复制

2.创建一个ListIterator对象

//get list iterator
ListIterator<String> li =nm.listIterator(); In the beginning, the Cursor of ListIterator will be pointed before the first element in the List. On calling the methods li.hasNext() and li.next() in a while loop, the cursor will be moved to the last element in the list. In order to start traversing from last, li.hasPrevious( ) and li.previous() methods will be called. On reaching the first element and again calling the same method will return a false value.
登录后复制

Java Listiterator 的方法

以下是 Java ListIterator 中使用的不同方法。

1.添加(E 榆树)

元素 elm 将被插入到列表中。 代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
public static void main(String a[])
{
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
//add the elements to the list
nm.add("Ram");
nm.add("Jaanu");
nm.add("Elsa");
nm.add("Anna");
nm.add("payal");
//get list iterator
li=nm.listIterator();
System.out.println("List is :");
while(li.hasNext()){
System.out.println(li.next());
}
}
}
登录后复制

输出:

Java 列表迭代器

2. hasNext()

向前遍历时,如果迭代器有下一个元素,则返回 True。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
public static void main(String a[])
{
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
//get list iterator
li=nm.listIterator();
System.out.println("List is :");
//iterates if next element is present in forward direction
while(li.hasNext()){
System.out.println(li.next());
}
}
}
登录后复制
登录后复制

输出:

Java 列表迭代器

3.有上一个()

向后遍历时,如果迭代器有下一个元素,则返回 True。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
//main method
public static void main(String a[])
{
//
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
//get list iterator
li=nm.listIterator();
System.out.println("Traversal in forward direction::");
while(li.hasNext()){
System.out.println(li.next());
}
System.out.println("\nTraversal in backward direction:");
while(li.hasPrevious()){
System.out.println(li.previous());
}
}
}
登录后复制
登录后复制

输出:

Java 列表迭代器

4.下一个()

将返回下一个元素,并且光标位置将前进。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
public static void main(String a[])
{
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
//get list iterator
li=nm.listIterator();
System.out.println("List is :");
//iterates if next element is present in forward direction
while(li.hasNext()){
System.out.println(li.next());
}
}
}
登录后复制
登录后复制

输出:

Java 列表迭代器

5. nextIndex()

将返回调用 next() 时返回的元素的索引。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
//main method
public static void main(String a[])
{
//
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
nm.add("Khan");
nm.add("Alia");
nm.add("Jhanvi");
//get list iterator
li=nm.listIterator();
System.out.println("The index of first element : " + li.nextIndex());
li.next();
System.out.println("The index of second element :  " + li.nextIndex());
li.next();
System.out.println("The index of third element : " + li.nextIndex());
li.next();
System.out.println("The index of fourth element : " + li.nextIndex());
li.next();
System.out.println("The index of fifth element : " + li.nextIndex());
}
}
登录后复制

输出:

Java 列表迭代器

6.上一个()

将返回上一个元素,并且光标位置将向后移动。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
//main method
public static void main(String a[])
{
//
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
//get list iterator
li=nm.listIterator();
System.out.println("Traversal in forward direction::");
while(li.hasNext()){
System.out.println(li.next());
}
System.out.println("\nTraversal in backward direction:");
while(li.hasPrevious()){
System.out.println(li.previous());
}
}
}
登录后复制
登录后复制

输出:

Java 列表迭代器

7. previousIndex()

将返回调用 previous() 时返回的元素的索引。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
//main method
public static void main(String a[])
{
//
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
nm.add("Khan");
nm.add("Alia");
nm.add("Jhanvi");
//get list iterator
li=nm.listIterator();
System.out.println("The index of first element : " + li.previousIndex());
li.next();
System.out.println("The index of second element :  " + li.previousIndex());
li.next();
System.out.println("The index of third element : " + li.previousIndex());
li.next();
System.out.println("The index of fourth element : " + li.previousIndex());
li.next();
System.out.println("The index of fifth element : " + li.previousIndex());
} }
登录后复制

输出:

Java 列表迭代器

8.删除()

调用 next() 或 previous() 返回的最后一个元素将被删除。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
//main method
public static void main(String a[])
{
//
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
nm.add("Kavya");
nm.add("Dileep");
nm.add("Sam");
nm.add("Anna");
//get list iterator
li=nm.listIterator();
System.out.println("List is : " + nm);
li.next();
li.next();
li.remove();
System.out.println("After calling remove() method : " + nm);
}
}
登录后复制

输出:

Java 列表迭代器

9.设置(E e)

用指定元素替换 next() 或 previous() 返回的最后一个元素(可选操作)。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIterExample {
//main method
public static void main(String a[])
{
//
ListIterator<String> li = null;
List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
nm.add("Kavya");
nm.add("Dileep");
nm.add("Sam");
nm.add("Anna");
//get list iterator
li=nm.listIterator();
System.out.println("List is : " + nm);
li.next();
li.next();
li.set("Anjali");
System.out.println("After calling set() method : " + nm);
}
}
登录后复制

输出:

Java 列表迭代器

结论

ListIterator 是 Java 中的双向迭代器,可以逐一迭代列表中的元素。与普通迭代器不同,ListIterator 支持 CRUD 操作。在本文中,详细讨论了 ListIterator 的不同方面。

以上是Java 列表迭代器的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!