Java 迭代器设计模式的实现
我有一个私有字段Java 迭代器设计模式的实现,java,design-patterns,iterator,iterable,Java,Design Patterns,Iterator,Iterable,我有一个私有字段Hashmap的类示例。我的目标是使用Iterable接口访问此类中CustomObject的所有实例。首先,我声明了实现Iterable的示例。然后我调用iterator()方法。但是,我不知道是否应该指定hasNext()等,在主代码中放置什么?以下是我到目前为止的情况: public class Example implements Iterable<Songs>{ private HashMap <Integer, CustomObject>;
Hashmap
的类示例。我的目标是使用Iterable
接口访问此类中CustomObject
的所有实例。首先,我声明了实现Iterable
的示例。然后我调用iterator()
方法。但是,我不知道是否应该指定hasNext()
等,在主代码中放置什么?以下是我到目前为止的情况:
public class Example implements Iterable<Songs>{
private HashMap <Integer, CustomObject>;
@Override
public Iterator<CustomObject> iterator() {
for (CustomObject customObject: this){
System.out.println(customObject);
}
public static void main(String[] args) {
Example.iterator();
}
公共类示例实现了Iterable{
私有HashMap;
@凌驾
公共迭代器迭代器(){
对于(CustomObject CustomObject:此){
System.out.println(customObject);
}
公共静态void main(字符串[]args){
例如,迭代器();
}
实际上HashMap
有一个方法,该方法返回一个值集合作为,而实际上是一个
(因此可以返回一个迭代器
)
并在以下任何代码段中使用:
- 只要
是一个示例
,那么它就可以与增强循环一起使用:可编辑的
for (CustomObject customObject: new Example()) { // Iterable with enhanced loop System.out.println(customObject); }
- 通过实际的
:迭代器
Iterator<CustomObject> iterator = new Example().iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
StreamSupport.stream(new Example().spliterator(), false) .forEach(System.out::println);
迭代器
模式实现的情况。如果您需要实现ne,我从这里开始:。说“需要应用迭代器”对我来说有点模糊,如果我是你,我会向老师询问细节。因此……我的回答在用法上没有错,但这取决于上下文和实际需求。在任何情况下,你现在都有你的资源。
Iterator<CustomObject> iterator = new Example().iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
StreamSupport.stream(new Example().spliterator(), false)
.forEach(System.out::println);