首页 > 编程 > Java > 正文

Java集合遍历

2019-11-11 01:23:21
字体:
来源:转载
供稿:网友

集合的遍历

使用Iterator Iterator主要用于遍历集合中的Collection元素,因此Iterator创建的对象是一个迭代器。

Iterator提供的四个方法

boolean hasNext(): 如果迭代器的集合还没有被遍历完,返回ture。Object next():返回集合里的下一个元素。void remove():删除集合里上一次next方法返回的元素。void forEachRemaining(Consumer action):这个是java 8为Iterator新增的默认方法,该方法可使用Lambda表达式遍历所有的集合元素。

next方法

import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * * 使用jdk8中的iterator遍历集合; */public class IteraorTest { public static void main(String[] args) { List books=new ArrayList<>(); books.add("fengk"); books.add("niaho"); Iterator it=books.iterator(); while (it.hasNext()){ it.next(); if(books.equals("fengk")){ it.remove(); } System.out.PRintln(it.next()); } }}> 输出结果>niaho

Iterator只用于遍历集合,本身本身并不具有承装对象的能力。如果需要就要创建Iterator对象,则必须有一个被迭代的集合。Iterator必须依附于Collection对象,若有一个Iterator对象,则必然有一个与之关联的Collection对象。

使用Lambda表达式遍历Iterator

import java.util.Collection;import java.util.HashSet;import java.util.Iterator;/** * */public class IteratorEach { public static void main(String[] args) { // 创建一个集合 Collection books=new HashSet<>(); books.add("java"); books.add("c#"); Iterator it=books.iterator(); // 使用Lambda表达式遍历所有的集合 it.forEachRemaining(obj->System.out.println(obj)); }}输出结果c#java

注意:这里的输出是倒序。

使用foreach遍历集合元素

import java.util.Collection;import java.util.HashSet;import java.util.Iterator;public class ForeachTest { public static void main(String[] args) { // 创建一个集合 Collection books=new HashSet<>(); books.add("java"); books.add("c#"); for(Object obj:books){// 此处的books变量也不是集合的本身元素 String book=(String)obj; System.out.println(book); if (book.equals("java")){ books.remove(book); } } System.out.println(books); }}

for循环中的迭代变量也不是集合元素本身,系统只是以此把集合元素的值赋值给迭代变量,因此for循环中修改的迭代变量的值是也是没有任何意义。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表