概述
集合迭代器是迭代设计模式的一种很好的实现
集合中的List Set Map数据结构各不相同,因此,设计一个迭代接口,所有不同结构集合都分别实现他们的迭代遍历
集合的迭代本质就是把 所有的集合的遍历方式转换成一种遍历方式
实现步骤:
List集合转换成迭代器集合,用迭代器的API方法来迭代数据
Set集合装换成迭代器集合,用迭代器的API方法来迭代数据
Map集合转换迭代器集合,用迭代器API的方法来迭代数据
利用迭代器的 hasNext();方法和next();方法来遍历集合
public class IteratorService {
/**
* 获取一个List集合对象
* @return
*/
public List<Person> getPerson_List(){
List<Person> list=new
ArrayList<Person>();
Student stu1=new Student("张三",20,"S001");
Student stu2=new Student("李四",21,"S002");
Student stu3=new Student("王五",22,"S003");
Student stu4=new Student("张五",20,"S003");
Teacher tea1=new Teacher("赵六",20,10000);
Teacher tea2=new Teacher("田七",35,20000);
list.add(stu1);
list.add(stu2);
list.add(stu3);
list.add(stu4);
list.add(tea1);
list.add(tea2);
return list;
}
/**
* 获取一个Set集合对象
* @return
*/
public Set<Person> getPerson_Set(){
Set<Person> set=new HashSet<Person>();
Student stu1=new Student("张三",20,"S001");
Student stu2=new Student("李四",21,"S002");
Student stu3=new Student("王五",22,"S003");
Student stu4=new Student("张五",20,"S003");
Teacher tea1=new Teacher("赵六",20,10000);
Teacher tea2=new Teacher("田七",35,20000);
set.add(stu1);
set.add(stu2);
set.add(stu3);
set.add(stu4);
set.add(tea1);
set.add(tea2);
return set;
}
/**
* 获取一个Map集合对象
* @return
*/
public Map<String,Person> getPerson_Map(){
Map<String,Person> map=new HashMap<String,Person>();
Student stu1=new Student("张三",20,"S001");
Student stu2=new Student("李四",21,"S002");
Student stu3=new Student("王五",22,"S003");
Student stu4=new Student("张五",20,"S003");
Teacher tea1=new Teacher("赵六",20,10000);
Teacher tea2=new Teacher("田七",35,20000);
map.put(stu1.getName(), stu1);
map.put(stu2.getName(), stu2);
map.put(stu3.getName(), stu3);
map.put(stu4.getName(), stu4);
map.put(tea1.getName(), tea1);
map.put(tea2.getName(), tea2);
return map;
}
}
实现用迭代器遍历
/**
* 把List集合转换成iterator迭代器
* 然后用迭代器的方式迭代数据
*/
public
void iterator_List(){
List<Person> list=this.getPerson_List();
Iterator<Person> it=list.iterator();//把List集合转换成迭代器集合
while(it.hasNext()){//it.hasNext(),只是判断是否有下一个数据
//如果有下一个数据,就取出下一个数据
Person p=it.next();
//继续根据具体的业务逻辑去获取p对象中的数据
CommonPerson cp=(CommonPerson)p;
System.out.println("name="+cp.getName()
+"
age="+cp.getAge());
}
}
/**
* 把Set集合转换成iterator迭代器
* 然后用迭代器的方式迭代数据
*/
public
void iterator_Set(){
Set<Person> set=this.getPerson_Set();
Iterator<Person> it=set.iterator();//把Set集合转换成迭代器集合
while(it.hasNext()){//it.hasNext(),只是判断是否有下一个数据
//如果有下一个数据,就取出下一个数据
Person p=it.next();
//继续根据具体的业务逻辑去获取p对象中的数据
CommonPerson cp=(CommonPerson)p;
System.out.println("name="+cp.getName()
+"
age="+cp.getAge());
}
}
/**
* 把map集合转换成iterator迭代器
* 然后用迭代器的方式迭代数据
*/
public
void iterator_Map(){
Map<String,Person> map=this.getPerson_Map();
Iterator<Person> it=map.values().iterator();//把map集合的素有value转换成迭代器集合
while(it.hasNext()){//it.hasNext(),只是判断是否有下一个数据
//如果有下一个数据,就取出下一个数据
Person p=it.next();
//继续根据具体的业务逻辑去获取p对象中的数据
CommonPerson cp=(CommonPerson)p;
System.out.println("name="+cp.getName()
+"
age="+cp.getAge());
}
}
最后
以上就是瘦瘦外套为你收集整理的iterator集合迭代器的全部内容,希望文章能够帮你解决iterator集合迭代器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复