`
qhuwn
  • 浏览: 69815 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java.lang.Iterable接口 - 循环打印MAP容器时候所想到的

阅读更多
以前只做过LIST的循环打印,昨天被问到MAP循环怎么弄,一下给人问蒙了,最后查API,发现Map类中有一个方法values() ,可以返回一个Collection集合容器,然后可以循环打印。而且发现实现了Iterable的类都可以用foreach来循环打印,JDK5后的新特性。
虽然说,不用实现Iterable也可以循环抓出容器里的值,但是用用新特性也没坏处。准备从Iterable开始分析。

类名:java.lang Interface Iterable<T>
方法:Iterator<T> iterator()
说明:Implementing this interface allows an object to be the target of the "foreach" statement.

All Known Subinterfaces:
BeanContext, BeanContextServices, BlockingDeque<E>, BlockingQueue<E>, Collection<E>, Deque<E>, DirectoryStream<T>, List<E>, NavigableSet<E>, Queue<E>, Set<E>, SortedSet<E>


All Known Implementing Classes:
AbstractCollection, AbstractList, AbstractQueue, AbstractSequentialList, AbstractSet, ArrayBlockingQueue, ArrayDeque, ArrayList, AttributeList, BatchUpdateException, BeanContextServicesSupport, BeanContextSupport, ConcurrentLinkedQueue, ConcurrentSkipListSet, CopyOnWriteArrayList, CopyOnWriteArraySet, DataTruncation, DelayQueue, EnumSet, HashSet, JobStateReasons, LinkedBlockingDeque, LinkedBlockingQueue, LinkedHashSet, LinkedList, Path, PriorityBlockingQueue, PriorityQueue, RoleList, RoleUnresolvedList, RowSetWarning, SecureDirectoryStream, SerialException, ServiceLoader, SQLClientInfoException, SQLDataException, SQLException, SQLFeatureNotSupportedException, SQLIntegrityConstraintViolationException, SQLInvalidAuthorizationSpecException, SQLNonTransientConnectionException, SQLNonTransientException, SQLRecoverableException, SQLSyntaxErrorException, SQLTimeoutException, SQLTransactionRollbackException, SQLTransientConnectionException, SQLTransientException, SQLWarning, Stack, SyncFactoryException, SynchronousQueue, SyncProviderException, TreeSet, Vector


自己写的一个类:
package test;

import java.util.Iterator;

public class IterableTest implements Iterator{

	public boolean hasNext() {
		// TODO Auto-generated method stub
		return false;
	}

	public Object next() {
		// TODO Auto-generated method stub
		return null;
	}

	public void remove() {
		// TODO Auto-generated method stub
		
	}
	
}



实现Iterable接口必须实现hasNext(),next(),remove三个方法。
实现的时候可以:
public class IterableTest implements Iterator<String>{
//下面的next()方法也有所改变
public String next() {
//但是不能
public class IterableTest implements Iterator<String>,Iterator<Integer>{

因为在实现方法后next方法有一个返回值,默认是Object,如果实现两个类型不一致的接口,那么就与“在一个类中写两个方法名和参数一致,而返回值不一致”的逻辑性错误一样了。


待续。。。
分享到:
评论
1 楼 610622106 2012-03-16  
Iterator接口才有这三方法hasNext(),next(),remove()
Iterable接口就只有一个iterator()方法

相关推荐

    小程序反编译脚本.zip

    1.需要node环境支持 2.下载模拟器-&gt;微信-&gt;搜索你要扒取的小程序(点开即可) 3.打开RE文件管理器,获取root权限,从根目录开始。... 4.执行反编译命令,node wuWxapkg.js filepath 百度也有很多教程,基本大致相同,...

    mesh.js, 异步iterable迭代器的实用工具库.zip

    mesh.js, 异步iterable迭代器的实用工具库 Mesh是一个用于异步iterable迭代器的实用工具库。动机这个库最初是用来处理复杂的数据流,并统一应用程序在内部和外部的通信方式。 它还作为一个单一的单通道通道for所有...

    coderodde.lists:Java中的实验性列表数据结构

    未来的里程碑-[x]实现整个`java.util.List`接口-[x]实现整个`java.util.Deque`接口-[]实现整个`java.util.Iterable`接口(使用Spliterator,等等)-[]试用其他节点类型-[]实现`java.io.Serializable`接口列表未来的...

    PyPI 官网下载 | iterable-queue-1.2.0.tar.gz

    资源来自pypi官网。 资源全名:iterable-queue-1.2.0.tar.gz

    PC端小程序包反编译工具【node,wupack,解密工具】

    PC端小程序包反编译工具【node,wupack,解密工具】 1.小程序包解密.rar 2.wxappUnpacker-master.rar 3.node-v14.17.6-x64.msi 具体事宜教程请观看大明子的博客教程“微信...” 如若无法下载,请关注后使用csdn进行联系。

    Python库 | iterable-api-0.1.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:iterable-api-0.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    javapoet-maven-plugin:JavaPoet Maven插件

    返回java.lang.Iterable&lt;com&gt; 。 例如: package your.name ; import com.squareup.javapoet.JavaFile ; import com.squareup.javapoet.TypeSpec ; import static java.util.Collections.singletonList ; import ...

    iterable-php-wrapper:用于Iterable APIPHP包装器(http

    使用您的API密钥实例化该类: $ iterable = new Iterable ( 'YOUR API KEY' );例子清单显示所有列表: $ iterable -&gt; lists (); 订阅用户到列表: $ iterable -&gt; list_subscribe ( $ list_id , array (array ( '...

    wx小程序反编译脚本wxappUnpacker-master.zip

    wx小程序反编译脚本wxappUnpacker-master,2020年4月3日亲测可用,需安装node,配置环境,安装5个依赖,大佬GitHub原地址:https://github.com/qwerty472123/wxappUnpacker

    Java源码分析Iterable.pdf

    Java源码分析Iterable.pdf

    超全Java集合框架讲解.md

    超全Java集合框架讲解 - 超全Java集合框架讲解 - 集合框架总览 - Iterator Iterable ListIterator - Map 和 Collection 接口 - Map 集合体系详解 - HashMap - LinkedHashMap - TreeMap - WeakHashMap - ...

    Java 基础核心总结 +经典算法大全.rar

    -、Iterator Iterable ListIterator 二、Map 和 Collection 接口Map 集合体系详解 HashMap LinkedHashMap TreeMap WeakHashMap Hashtable Collection 集合体系详解 Set 接口 AbstractSet 抽象类SortedSet 接口...

    JAVA jdk1.5的新特性

    注意:集合变量可以是数组或实现了Iterable接口的集合类 2.静态导入(这样调用一个静态方法的时候就不需要【类名.方法名】去调用了,直接写静态方法名就可 以了) 格式:import static java.lang.Math.* 注意:...

    Python库 | iterable_orm-0.3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:iterable_orm-0.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    python基础3day04.txt

    iter(iterable) 从可迭代对象中返回一个迭代器,iterable必须是一个能提供迭代器的可迭代对象 next(iterator) 从迭代器iterator中获取下一条记录,如果无法获取下一条记录,则触发StopIteration 异常 说明: 迭代器...

    python【数据结构与算法】map() 映射函数(看不懂你来打我)

    map(function, iterable, ...) 3 参数 function -- 函数 iterable -- 一个或多个序列 4 返回值 Python 2.x 返回列表。 Python 3.x 返回迭代器。 5 实例 以下实例展示了 map() 的使用方法: &gt;&gt;&gt;def square(x) :

    40道java集合面试题含答案(很全很详细)

    Collection接口继承自Iterable接口,这意味着可以通过for-each循环遍历集合元素。 List接口是有序的集合,可以包含重复的元素。List接口提供了按照索引位置访问元素的方法,以及添加、删除和修改元素的操作。List...

    若依整合Ureport2导出报表错误的解决方法

    若依整合Ureport2导出报表提示 Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader 的解决文档说明

    Python-3.8.0a3.tgz

    如果需要额外的功能OrderedDict,建议的补救措施是将结果转换为所需的类型:OrderedDict(nt._asdict())。该unicodedata模块已升级为使用Unicode 12.0.0 版本。 ASYNCIO 在Windows上,现在是默认的事件循环...

    【JDK1.8源码剖析】内部迭代器 Iterable接口

    一个类如果实现了Iterable接口,就意味着“该类本身支持遍历”,并可以通过for-each这种循环语法来直接遍历。当然,一个类如果没有实现Iterable接口,也可以通过挂载外部迭代器Iterator进行遍历。 此外,内部迭代器...

Global site tag (gtag.js) - Google Analytics