對存儲對象的容器進行疊代
string [] arr = {"a", "b","c"}; //數組的靜态定義方式,隻試用于數組首次定義的時候
// 傳統方式
for(int i=0; i<arr.length; i++) {
// i依次表示數組的角标
string s =arr[i];
system.out.println(s);
}
system.out.println("-------------------------------------");
// 在jdk5中我們可以使用增強for循環疊代
// 增強for循環括号裡寫兩個參數,第一個是聲明一個變量,變量類型必須是數組元素的類型
// 第二個就是需要疊代的容器
// for循環會循環容器的length次, 每次都将容器的第n-1個元素指派給聲明的變量
for(string s : arr) {
// 循環體, 執行arr.length
// 每次都将arr中的第n-1個元素給s
system.out.println(s); //
list list = new arraylist();
list.add("aaa");
list.add("bbb");
list.add("ccc");
// 傳統方式1
/* 1.獲得疊代器
iterator iter = list.iterator();
// 2.循環判斷疊代器是否有下一個
while(iter.hasnext()) {
string str= (string) iter.next(); // 将疊代器的指針移向下一個,并将疊代目前指向的元素傳回
system.out.println(str);
*/
// 傳統方式2
for(iterator iter=list.iterator(); iter.hasnext(); ){
string s =(string) iter.next();
system.out.println("--------------------------------");
// 增強for循環, 沒有使用泛型的集合能不能使用增強for循環疊代?能
for(object obj : list) {
string s= (string) obj;
map map = new hashmap();
map.put("a", "aaa");
map.put("b", "bbb");
map.put("c", "ccc");
// 傳統方式疊代1
// 1. 獲得所有的key
set keys = map.keyset();
// 2.疊代keys獲得所有的key
iterator iter = keys.iterator();
string key= (string) iter.next(); // a b c
// 3.根據key獲得對應的value
stringvalue = (string) map.get(key);
system.out.println(key+ "=" + value);
system.out.println("---------------------------------");
// 傳統方式2,必須掌握這種方式
// 1.獲得所有的鍵值對entry對象
set entrys = map.entryset();
// 2.疊代出所有的entry
iter = entrys.iterator();
map.entryentry = (entry) iter.next();
// 分别獲得key和value
string key= (string) entry.getkey();
stringvalue = (string) entry.getvalue();
system.out.println("增強for循環疊代,");
// 增強for循環疊代,
// 原則上map集合是無法使用增強for循環來疊代的,
// 因為增強for循環隻能針對實作了iterable接口的集合進行疊代
// iterable是jdk5中新定義的接口,就一個方法iterator方法
// 隻有實作了iterable接口的類,才能保證一定有iterator方法
// java有這樣的限定是因為增強for循環内部還是用疊代器實作的
// 而實際上,我們可以通過某種方式來使用增強for循環
for(object obj : map.entryset()) {
// obj 依次表示entry
map.entryentry = (entry) obj;
system.out.println(entry.getkey()+ "=" + entry.getvalue());
// 在使用疊代器疊代集合的過程中,不能對集合進行增删操作
@test
public void test4() {
list list =new arraylist();
list.add("wangwu");
list.add("zhangsan");
list.add("lisi");
iteratoriter = list.iterator();
while(iter.hasnext()){
stringname = (string) iter.next();
if("wangwu".equals(name)){
// 從集合中删掉
//list.remove(name);
// 疊代過程中删除元素需要調用疊代器的方法
iter.remove(); // 删除我疊代的集合被我疊代的最後一個元素
}
}
// 1 2 4
system.out.println(list.size());
public void test5() {
list.add("aa");
list.add("bb");
// 使用listiterator疊代器
listiteratorlistiterator = list.listiterator();
while(listiterator.hasnext()){
listiterator.next();
// 疊代過程中增加元素
listiterator.add("cc");
//在使用增強for循環時,不能對元素進行指派
int[] arr = {1,2,3};
for(int num : arr) {
num = 0;
system.out.println(arr[1]);