- 集合疊代器定義:
是疊代器設計模式的一個很好的實作
- 集合中的疊代主要用途:
就是周遊集合中的元素,把List集合,和Set集合,Map集合都轉換成集合的疊代
- 集合疊代的本質:
就是把所有的集合周遊方式轉換成疊代器這一種便利方式
- 實作步驟
List集合轉換成疊代器集合,用疊代器api方法來疊代資料
Set集合轉換成疊代器集合,用疊代器api方法來疊代資料
Map集合轉換成疊代器集合,用疊代器api方法來疊代資料
- 代碼示範:
/**
* 示範集合的疊代iterator
* @author PC
*/
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, "S005");
Teacher tea1 = new Teacher("趙六", 30, 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, "S005");
Teacher tea1 = new Teacher("趙六", 30, 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, "S005");
Teacher tea1 = new Teacher("趙六", 30, 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());
}
}