首页 > 代码库 > JDK5.0新特性-增强for循环

JDK5.0新特性-增强for循环

技术分享

==============

增强for循环
它的底层实现就是使用Iterator。
什么样的容器可以使用增强for?-----------Iterable

增强for的缺点:只能进行遍历,不能进行在遍历过程中的操作.

增强for的格式
for(类型 引用:容器){
}
--------------------------------------------
关于对集合的遍历.
List
1.Iterator
2.增强for
3.普通for
4.ListIterator
Set
1.增强for
2.Iterator
Map
1.keySet---得到所有的key的Set视图
2.entrySet--得到key-value的set视图

==============

对List进行遍历

package cn.itcast.fordemo;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;import java.util.Random;import org.junit.Test;//必会代码//对List进行遍历public class Demo1 {    // 1.使用传统的迭代器    @Test    public void demo1() {        List<Integer> list = new ArrayList<Integer>();        for (int i = 0; i < 10; i++) {            list.add(new Random().nextInt(100));        }        // for (Iterator<Integer> it = list.iterator(); it.hasNext();) {        // System.out.println(it.next());        // }        Iterator<Integer> it = list.iterator();        while (it.hasNext()) {            System.out.println(it.next());        }    }    // 2.使用ListIterator----好处:1.可以向下或向上遍历 2.可以在遍历过程中进行 add set操作.    @Test    public void demo2() {        List<Integer> list = new ArrayList<Integer>();        for (int i = 0; i < 10; i++) {            list.add(new Random().nextInt(100));        }        ListIterator<Integer> it = list.listIterator();        while (it.hasNext()) {            System.out.println(it.next());        }    }    // 3.使用普通for size get    @Test    public void demo3() {        List<Integer> list = new ArrayList<Integer>();        for (int i = 0; i < 10; i++) {            list.add(new Random().nextInt(100));        }        for (int i = 0; i < list.size(); i++) {            System.out.println(list.get(i));        }    }    // 4.增强for    @Test    public void demo4() {        List<Integer> list = new ArrayList<Integer>();        for (int i = 0; i < 10; i++) {            list.add(new Random().nextInt(100));        }        for (int n : list) {            System.out.println(n);        }    }}

对Set集合进行遍历

package cn.itcast.fordemo;import java.util.HashSet;import java.util.Iterator;import java.util.Set;import org.junit.Test;//对Set集合进行遍历public class Demo2 {    // 迭代器    @Test    public void demo1() {        Set<String> set = new HashSet<String>(); // 使用hashCode与equals来维护唯一性.        set.add("def");        set.add("123");        set.add("abc");        for (Iterator<String> it = set.iterator(); it.hasNext();) {            System.out.println(it.next());        }    }        //增强for    @Test    public void demo2(){        Set<String> set = new HashSet<String>(); // 使用hashCode与equals来维护唯一性.        set.add("def");        set.add("123");        set.add("abc");                for(String s:set){            System.out.println(s);        }    }}

map 遍历

package cn.itcast.fordemo;import java.util.HashMap;import java.util.Map;import java.util.Set;import org.junit.Test;//map 遍历public class Demo3 {    // 使用keySet    @Test    public void demo1() {        Map<String, String> map = new HashMap<String, String>();        map.put("first", "aaaa");        map.put("second", "bbbb");        Set<String> keys = map.keySet(); // 在keys中是 first,second        for (String key : keys) {            System.out.println("KEY:" + key + "  VALUE:" + map.get(key));        }    }    // 使用entrySet    @Test    public void demo2() {        Map<String, String> map = new HashMap<String, String>();        map.put("first", "aaaa");        map.put("second", "bbbb");        Set<Map.Entry<String, String>> set = map.entrySet();        for (Map.Entry<String, String> entry : set) {            System.out.println(entry.getKey() + "   " + entry.getValue());        }    }}

数组也可以使用增强for进行遍历

package cn.itcast.fordemo;import org.junit.Test;public class Demo4 {    @Test    // 数组也可以使用增强for进行遍历    public void demo() {        int[] arr={1,2,3,4,5};                for(int n:arr){            System.out.println(n);        }    }}

 

JDK5.0新特性-增强for循环