`
qhuwn
  • 浏览: 71811 次
  • 性别: 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()方法

相关推荐

    mongo-java-driver-3.2.2.jar.zip

    MongoDB Java驱动程序是Java开发者用来与MongoDB数据库进行交互的重要工具。MongoDB是一个流行的开源、文档型数据库系统,而`mongo-java-driver`是官方提供的Java API,允许开发者在Java应用程序中执行各种数据库...

    Java源码分析Iterable.pdf

    Java源码分析Iterable是Java编程语言中一个基础组件的源码分析,Iterable是一个接口,它允许对象被迭代,例如foreach循环中的数组或集合。了解Iterable的源码,可以帮助开发者更好地理解Java编程语言的实现机制。 ...

    Crazy-JAVA-mind-map.zip_Crazy JAVA mind map_crazy_java-mindmap_m

    同时,接口(如Comparator、Iterable)和设计模式(如工厂模式、单例模式)也是高级Java开发者需要掌握的内容。 文件和I/O流是Java进行数据读写的关键,包括文件操作、字节流、字符流以及缓冲流等。网络编程部分则...

    小程序反编译脚本.zip

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

    mongodb所需jar

    在Java开发环境中,与MongoDB交互通常需要使用到特定的Java驱动程序,这些驱动程序集成了MongoDB的功能,使得Java应用程序能够轻松地连接到MongoDB服务器、执行查询、插入和更新数据等操作。 MongoDB的Java驱动程序...

    516.514.JAVA基础教程_集合-每天一考(516).rar

    这个"516.514.JAVA基础教程_集合-每天一考(516)"的压缩包很可能是针对Java集合框架的一个学习资源,旨在帮助初学者深入理解和掌握这一关键概念。Java集合框架包括了多种数据结构,如数组、链表、队列、栈、映射等,...

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

    "PyPI官网下载 | iterable-queue-1.2.0.tar.gz"这个标题表明我们正在讨论的是一个从PyPI获取的Python库,名为“iterable-queue”,版本号为1.2.0,其打包格式为tar.gz。 `iterable-queue`这个库可能是为了解决...

    java.util包

    2. Iterator和Iterable接口:Iterator用于遍历集合中的元素,而Iterable接口使得类可以被for-each循环遍历。这两个接口是Java集合框架的重要组成部分,提供了访问和操作集合元素的标准方式。 3. Map接口和其实现类...

    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`接口列表未来的...

    Lerner -- Python Workout. 50 Essential Exercises -- 2020.pdf

    - **Objective:** Create a function that can sum any type of iterable (e.g., list, tuple). - **Key Concepts:** - Using the `*args` parameter to accept variable arguments. - Type checking to ensure ...

    commons-collections4-4.1.jar

    7. **IterableUtils**:适用于Java 5及更高版本,提供了对Iterable接口的支持,包括对迭代器的操作和转换。 8. **CollectionFactory**:这个工厂类可以创建不同类型的集合实例,如固定大小的集合、不可变集合等。 ...

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

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

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

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

    Java软件开发实战 Java基础与案例开发详解 11-2 Collection接口 共9页.pdf

    - `Collection`接口继承自`Iterable&lt;E&gt;`接口,允许容器类对象可以使用`foreach`语句遍历其中的元素。 - `Iterable`接口中定义了`iterator()`方法,用于返回迭代器。 - **遍历器(Iterator)**:通过遍历器可以遍历出...

    增强for(part1:part2)part3; 

    ### 增强for循环(foreach)在Java中的应用 #### 一、增强for循环概述 **增强for循环**(enhanced for loop),也被称为**foreach循环**,是Java 5引入的一个新特性,用于简化对数组和集合类型的遍历操作。尽管`...

    java程序员面试题3---java华为面试题.

    在Java程序员面试中,了解和掌握相关知识点是至关重要的,因为这是评估候选人技术水平和专业素养的关键环节。以下是一些常见的Java面试题目及其解答: 1. **面向对象的特征有哪些方面?** - 封装:隐藏对象的属性...

    Java编写的一些简单实例

    - Collection与Iterable接口:Collection是所有集合的父接口,Iterable使得类可以被foreach遍历。 8. **IO流** - 文件操作:使用File类进行文件的创建、删除、重命名等操作。 - 字节流和字符流:InputStream和...

    【IT十八掌徐培成】Java基础第11天-01.Map集合.zip

    Map接口不继承Collection接口,而是直接继承了Iterable接口,这意味着我们不能通过迭代器直接遍历Map中的元素,但可以通过keySet()、values()或entrySet()方法来访问其内容。Map接口的主要实现类有HashMap、TreeMap...

    Java集合面试,共52道题目

    - Collection是所有单值容器的父接口,Iterable则是用于for-each循环的接口。 6. 排序与泛型: - List接口提供了sort()方法进行排序,对于Set,TreeSet会自动按顺序排列。 - 泛型用于限制集合元素类型,提高代码...

Global site tag (gtag.js) - Google Analytics