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);
        }
    }
}

 

转载于:https://www.cnblogs.com/spadd/p/4190841.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值