集合遍历操作:Collection及Iterator接口
来源:互联网 发布:如何评价潘粤明知乎 编辑:程序博客网 时间:2024/06/05 20:20
常用的集合遍历操作有:Lambda表达式遍历、Iterator遍历、Lambda表达式遍历Iterator、foreach遍历集合元素。
- Lambda表达式遍历:Collection extends Iterable,Iterable接口中有个默认方法:
default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } }
/**当调用Iterable的foreach(Consumer<? super T> action)时,程序将集合元素传递给接口Consumer(函数式接口)的唯一抽象方法:void accept(T t)通过该方法可实现对集合的遍历,实例如下: */public class SDF{ public static void main(String[] args) { Collection c = new HashSet<>(); c.add("ele1"); c.add("ele2"); c.add("ele3"); c.forEach(obj -> System.out.println("迭代集合器:" + obj)); }}
控制台输出(Set集合无序不可重复,输出结果的顺序与add的顺序无关,可尝试打印集合c,其与元素的HashCode值有关—>下同):
迭代集合器:ele3迭代集合器:ele2迭代集合器:ele1
- Iterator遍历:查看Iterator的API:
public interface Iterator
An iterator over a collection. Iterator takes the place of Enumeration in the Java Collections Framework. Iterators differ from enumerations in two ways:
- Iterators allow the caller to remove elements from the underlying collection during the iteration with well-defined semantics.
- Method names have been improved.
This interface is a member of the Java Collections Framework.
Iterator必须在集合类的基础上生成,即存在一个Iterator对象(迭代器),则必有一个与之关联的Collection对象;
Iterator接口中有函数:void forEachRemaining(Consumer
public class SDF{ public static void main(String[] args) { Collection c = new HashSet<>(); c.add("ele1"); c.add("ele2"); c.add("ele3"); Iterator it1 = c.iterator(); System.out.println(it1.hasNext()); while (it1.hasNext()) { System.out.println("--->" + it1.next()); } }}
控制台输出结果:
true--->ele3--->ele2--->ele1
- Lambda表达式遍历Iterator: forEachRemaining的参数仍然时函数式接口对象,因而同样可以采用Lambda表达式;
代码如下:
public class SDF{ public static void main(String[] args) { Collection c = new HashSet<>(); c.add("ele2"); c.add("ele4"); c.add("ele3"); Iterator it = c.iterator(); it.forEachRemaining(ob -> System.out.println("迭代器:" + ob));/* Iterator it1 = c.iterator(); System.out.println(it1.hasNext()); while (it1.hasNext()) { System.out.println("--->" + it1.next()); }*/ }}
控制台输出结果:
迭代器:ele4迭代器:ele3迭代器:ele2
- foreach遍历集合元素:
public class SDF{ public static void main(String[] args) { Collection c = new HashSet<>(); c.add("ele2"); c.add("ele4"); c.add("ele3"); for (Object object : c) { System.out.println("foreach-->" + object); } }}
控制台输出:
foreach-->ele4foreach-->ele3foreach-->ele2
- 同一个Iterator对象(迭代器),只能进行一次遍历,因为遍历完之后其不具有任何元素:
public class SDF{ public static void main(String[] args) { Collection c = new HashSet<>(); c.add("ele1"); c.add("ele4"); c.add("ele3"); Iterator it = c.iterator(); it.forEachRemaining(obj -> System.out.println("迭代器:" + obj)); System.out.println(it.hasNext()); while (it.hasNext()) { System.out.println("--->" + it.next()); } }}
控制台输出:
迭代器:ele4迭代器:ele3迭代器:ele1false
0 0
- 集合遍历操作:Collection及Iterator接口
- 用iterator接口遍历collection
- Java集合----概述、Collection接口、Iterator接口
- java集合(1):集合框架体系之Collection接口及迭代器Iterator接口
- 集合接口与抽象类 collection接口 Iterator接口
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- 集合及Collection接口简介
- 4.2.2集合类 Collection接口和 Iterator接口
- 集合的遍历:Iterator接口、foreach
- Java集合概述集Collection 和 Iterator 接口用法详解
- Java基础-集合框架2 Collection和Iterator接口
- Collection 与iterator接口
- Collection和Iterator接口
- (6) 集合之Collection接口和Iterator方法、Collection接口和Collections工具类
- Collection接口和Iterator接口
- Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 关于Service的基本概念
- 正则表达式
- DOS 使用CL命令 编译程序
- 3. 线性回归 Linear Regression
- Eclipse导入Maven项目
- 集合遍历操作:Collection及Iterator接口
- 第一次面试前端的心路历程
- mybatis映射器三(insert,update,delete)
- linux操作系统下安装jdk环境
- 关于Binder的基本概念
- 如何简单粗暴的干掉2345主页
- 人工智能(AI)资料大全
- 高仿微信通讯录,解决SideBarView下标越界问题
- 开源项目之Android框架(Query)