package com.eyugame.modle;
import java.util.ArrayList;
import java.util.List;
/**
* 迭代器模式
* @author JYC506
*
* @param <T>
*/
/*自定义迭代器*/
public class MyIterator<T> implements Iterator<T> {
private List<T> list = new ArrayList<T>();
private int cursor;
public MyIterator(List<T> list) {
super();
this.list = list;
this.cursor=0;
}
@Override
public boolean hasNext() {
if (this.cursor < list.size()) {
return true;
}
return false;
}
@Override
public T next() {
T t = list.get(cursor);
cursor++;
return t;
}
public static void main(String[] args) {
MyList<User> list=new MyList<User>();
list.add(new User("小明",9));
list.add(new User("小红",7));
list.add(new User("小丽",8));
Iterator<User> iterator=list.iterator();
while(iterator.hasNext()){
User user=iterator.next();
System.out.println("姓名:"+user.getUsername()+" 年龄"+user.getAge());
}
}
}
interface Iterator<T> {
boolean hasNext();
T next();
}
/*自定义列表*/
class MyList<T>{
List<T> list=new ArrayList<T>();
public void add(T t){
list.add(t);
}
public void remove(T t){
list.remove(t);
}
public Iterator<T> iterator(){
return new MyIterator<>(list);
}
}
class User {
private String username;
private int age;
public User(String username, int age) {
super();
this.username = username;
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
(行为型模式八)迭代器模式
最新推荐文章于 2024-08-31 12:04:59 发布