Java

Java - 遍历List

2018-01-04  本文已影响37人  533e11a308d9

遍历List

package com.code.ggsddu;

import org.junit.Test;

import java.util.*;

public class AboutList {

    @Test
    public void listTraversal() {// 遍历List
        List<Object> list = Arrays.asList(0, 1, 2, 3, 4, 5, 6);

        // List转数组后遍历数组
        Object[] arr = list.toArray();
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }

        // 增强for循环
        for (Object obj : list) {
            System.out.print(obj + " ");
        }

        // 用迭代器遍历集合框架,它是一个对象,实现了Iterator接口或ListIterator接口。
        // 采用迭代器的方法,该方法可以不用担心在遍历的过程中会超出集合的长度。
        Iterator<Object> iterator = list.iterator();
        while (iterator.hasNext()) {
            System.out.print(iterator.next() + " ");
        }

        /**
         * Lambda表达式
         * Java8之前, 集合类的迭代(Iteration)都是外部的,即客户代码。
         * 而内部迭代意味着改由Java类库来进行迭代,而不是客户代码。
         */
        list.forEach(obj -> {
            System.out.print(obj + " ");
        });
    }

}

遍历Map

package com.code.ggsddu;

import org.junit.Test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class AboutMap {

    @Test
    public void mapTraversal() {
        Map<String, Object> map = new HashMap<>();
        map.put("one", 1);
        map.put("two", 2);
        map.put("three", 3);

        // 增强for循环遍历key
        for (String key : map.keySet()) {
            System.out.println(key);
        }
        // // 增强for循环遍历value
        for (Object value : map.values()) {
            System.out.println(value);
        }
        // 效率极低
        for (String key : map.keySet()) {
            System.out.println(key);
            System.out.println(map.get(key));
        }

        /**
         * Map.Entry
         * 描述在一个Map中的一个元素(键/值对)。是一个Map的内部类。
         */

        // 通过Map.entrySet遍历key和value(推荐,尤其是容量大时)
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            entry.getKey();
            entry.getValue();
        }

        // 通过Map.entrySet使用iterator遍历key和value
        Iterator<Map.Entry<String, Object>> entryIterator = map.entrySet().iterator();
        while (entryIterator.hasNext()) {
            Map.Entry<String, Object> entry = entryIterator.next();
            System.out.println(entry.getKey() + ", " + entry.getValue());
        }

        // lambda表达式
        map.forEach((key, value) -> System.out.println("key: " + key + ", value: " + value));
    }

}
上一篇下一篇

猜你喜欢

热点阅读