集合框架-Collection集合-3
(7)Collection集合的案例(遍歷方式 迭代器)
集合的操作步驟:
A:建立集合物件
B:建立元素物件
C:把元素新增到集合
D:遍歷集合
a.通過集合物件獲取迭代器物件
b.通過迭代器物件的hasNext()判斷是否有元素
c.通過迭代器物件的next()方法獲取元素並移動到下一個位置
迭代器為什麼不定義成一個類,而是一個介面?
假設迭代器定義的是一個類,這樣我們就可以建立該類的物件,呼叫該類的方法來實現集合的遍歷。但是呢?我們想想,
java中提供了很多的集合類,而這些集合類的資料結構是不同的,所以,儲存方式和遍歷的方式應該是不同的。
進而它們的遍歷方式應該是不一樣的,最終,就沒有定義迭代器類的。
而無論你是哪種集合,你都應該具備獲取元素的操作,並且,最好在輔助於判斷功能,這樣,在獲取前,先判斷。這樣就更不容
易出錯。也就是說,判斷功能和獲取功能應該是一個集合遍歷所具備的,而每種集合的方式又不太一樣,所以我們把這兩個功能
給提取出來,並不提供具體實現,這種方式就是介面。
那麼,真正的具體的實現類在哪裡呢?在真正的具體的子類中,以內部類的方式體現的。
A:儲存字串並遍歷
package cn.itcast_04;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
* 需求:儲存字串並遍歷。
*
* 分析:
* A:建立集合物件
* B:建立字串物件
* C:把字串物件新增到集合中
* D:遍歷集合
*/
public class CollectionTest {
public static void main(String[] args) {
// 建立集合物件
Collection c = new ArrayList();
// 建立字串物件
// 把字串物件新增到集合中
c.add("林青霞");
c.add("風清揚");
c.add("劉意");
c.add("武鑫");
c.add("劉曉曲");
// 遍歷集合
// 通過集合物件獲取迭代器物件
Iterator it = c.iterator();
// 通過迭代器物件的hasNext()方法判斷有沒有元素
while (it.hasNext()) {
// 通過迭代器物件的next()方法獲取元素
String s = (String) it.next();
System.out.println(s);
}
}
}
B:儲存自定義物件並遍歷
package cn.itcast_04;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
* 需求:儲存自定義物件並遍歷Student(name,age)
*
* 分析:
* A:建立學生類
* B:建立集合物件
* C:建立學生物件
* D:把學生物件新增到集合物件中
* E:遍歷集合
*/
public class CollectionTest2 {
public static void main(String[] args) {
// 建立集合物件
Collection c = new ArrayList();
// 建立學生物件
Student s1 = new Student("貂蟬", 25);
Student s2 = new Student("小喬", 16);
Student s3 = new Student("黃月英", 20);
Student s4 = new Student();
s4.setName("大喬");
s4.setAge(26);
// 把學生物件新增到集合物件中
c.add(s1);
c.add(s2);
c.add(s3);
c.add(s4);
c.add(new Student("孫尚香", 18)); // 匿名物件
// 遍歷集合
Iterator it = c.iterator();
while (it.hasNext()) {
Student s = (Student) it.next();
System.out.println(s.getName() + "---" + s.getAge());
}
}
}
package cn.itcast_04;
public class Student {
private String name;
private int age;
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
相關文章
- 集合框架-Collection集合框架
- 集合框架-Collection集合-2框架
- 集合框架-Collection集合總結框架
- 集合框架小結-Collection框架
- 集合------集合框架Collection/Iterator迭代器/增強for迴圈框架
- 集合框架-List集合-3框架
- Java 集合深入理解(3):CollectionJava
- Java集合-CollectionJava
- Android基礎之Java集合框架CollectionAndroidJava框架
- 「譯」Java集合框架系列教程三:Collection介面Java框架
- Swift之集合型別 (Collection Types)(集合篇)Swift型別
- Java:Collection集合、泛型Java泛型
- Java Collection集合面試題Java面試題
- Collection集合的遍歷
- 【Java集合】單列集合Collection常用方法詳解Java
- thinkphp5.x之Collection(集合)解析php集合PHP
- 集合框架-TreeMap集合框架
- 集合框架-Set集合框架
- 集合框架-TreeSet集合框架
- 集合框架-List集合框架
- 【集合框架】Java集合框架綜述框架Java
- Java Collection介面 ArrayList集合(容器)Java
- Java 的 Collection 與 List 集合Java
- Java Collection、Map集合總結Java
- 集合框架-集合總結框架
- 集合框架-List集合-2框架
- 集合框架3-Arrays 類框架
- Java學習--java中的集合框架、Collection介面、list介面Java框架
- 集合框架-Map集合功能概述框架
- 集合框架-HashMap集合的案例框架HashMap
- Java集合(1)一 集合框架Java框架
- 集合框架框架
- 十五個常用的 Laravel 集合(Collection)Laravel
- 15個常用的Laravel 集合(Collection)Laravel
- Java學習關於集合框架的基礎介面--Collection介面Java框架
- 集合框架-Map集合的遍歷框架
- Java集合框架系列教程一:集合框架簡介Java框架
- 教程:Laravel 集合(Collection)的基礎用法Laravel