以前只做过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,如果实现两个类型不一致的接口,那么就与“在一个类中写两个方法名和参数一致,而返回值不一致”的逻辑性错误一样了。
待续。。。
分享到:
相关推荐
MongoDB Java驱动程序是Java开发者用来与MongoDB数据库进行交互的重要工具。MongoDB是一个流行的开源、文档型数据库系统,而`mongo-java-driver`是官方提供的Java API,允许开发者在Java应用程序中执行各种数据库...
Java源码分析Iterable是Java编程语言中一个基础组件的源码分析,Iterable是一个接口,它允许对象被迭代,例如foreach循环中的数组或集合。了解Iterable的源码,可以帮助开发者更好地理解Java编程语言的实现机制。 ...
同时,接口(如Comparator、Iterable)和设计模式(如工厂模式、单例模式)也是高级Java开发者需要掌握的内容。 文件和I/O流是Java进行数据读写的关键,包括文件操作、字节流、字符流以及缓冲流等。网络编程部分则...
1.需要node环境支持 2.下载模拟器->微信->搜索你要扒取的小程序(点开即可) 3.打开RE文件管理器,获取root权限,从根目录开始。... 4.执行反编译命令,node wuWxapkg.js filepath 百度也有很多教程,基本大致相同,...
在Java开发环境中,与MongoDB交互通常需要使用到特定的Java驱动程序,这些驱动程序集成了MongoDB的功能,使得Java应用程序能够轻松地连接到MongoDB服务器、执行查询、插入和更新数据等操作。 MongoDB的Java驱动程序...
这个"516.514.JAVA基础教程_集合-每天一考(516)"的压缩包很可能是针对Java集合框架的一个学习资源,旨在帮助初学者深入理解和掌握这一关键概念。Java集合框架包括了多种数据结构,如数组、链表、队列、栈、映射等,...
"PyPI官网下载 | iterable-queue-1.2.0.tar.gz"这个标题表明我们正在讨论的是一个从PyPI获取的Python库,名为“iterable-queue”,版本号为1.2.0,其打包格式为tar.gz。 `iterable-queue`这个库可能是为了解决...
2. Iterator和Iterable接口:Iterator用于遍历集合中的元素,而Iterable接口使得类可以被for-each循环遍历。这两个接口是Java集合框架的重要组成部分,提供了访问和操作集合元素的标准方式。 3. Map接口和其实现类...
mesh.js, 异步iterable迭代器的实用工具库 Mesh是一个用于异步iterable迭代器的实用工具库。动机这个库最初是用来处理复杂的数据流,并统一应用程序在内部和外部的通信方式。 它还作为一个单一的单通道通道for所有...
未来的里程碑-[x]实现整个`java.util.List`接口-[x]实现整个`java.util.Deque`接口-[]实现整个`java.util.Iterable`接口(使用Spliterator,等等)-[]试用其他节点类型-[]实现`java.io.Serializable`接口列表未来的...
- **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 ...
7. **IterableUtils**:适用于Java 5及更高版本,提供了对Iterable接口的支持,包括对迭代器的操作和转换。 8. **CollectionFactory**:这个工厂类可以创建不同类型的集合实例,如固定大小的集合、不可变集合等。 ...
wx小程序反编译脚本wxappUnpacker-master,2020年4月3日亲测可用,需安装node,配置环境,安装5个依赖,大佬GitHub原地址:https://github.com/qwerty472123/wxappUnpacker
PC端小程序包反编译工具【node,wupack,解密工具】 1.小程序包解密.rar 2.wxappUnpacker-master.rar 3.node-v14.17.6-x64.msi 具体事宜教程请观看大明子的博客教程“微信...” 如若无法下载,请关注后使用csdn进行联系。
- `Collection`接口继承自`Iterable<E>`接口,允许容器类对象可以使用`foreach`语句遍历其中的元素。 - `Iterable`接口中定义了`iterator()`方法,用于返回迭代器。 - **遍历器(Iterator)**:通过遍历器可以遍历出...
### 增强for循环(foreach)在Java中的应用 #### 一、增强for循环概述 **增强for循环**(enhanced for loop),也被称为**foreach循环**,是Java 5引入的一个新特性,用于简化对数组和集合类型的遍历操作。尽管`...
在Java程序员面试中,了解和掌握相关知识点是至关重要的,因为这是评估候选人技术水平和专业素养的关键环节。以下是一些常见的Java面试题目及其解答: 1. **面向对象的特征有哪些方面?** - 封装:隐藏对象的属性...
- Collection与Iterable接口:Collection是所有集合的父接口,Iterable使得类可以被foreach遍历。 8. **IO流** - 文件操作:使用File类进行文件的创建、删除、重命名等操作。 - 字节流和字符流:InputStream和...
Map接口不继承Collection接口,而是直接继承了Iterable接口,这意味着我们不能通过迭代器直接遍历Map中的元素,但可以通过keySet()、values()或entrySet()方法来访问其内容。Map接口的主要实现类有HashMap、TreeMap...
- Collection是所有单值容器的父接口,Iterable则是用于for-each循环的接口。 6. 排序与泛型: - List接口提供了sort()方法进行排序,对于Set,TreeSet会自动按顺序排列。 - 泛型用于限制集合元素类型,提高代码...