1. 程式人生 > >Java集合Collection之遍歷方法總結(List、Map、Set)

Java集合Collection之遍歷方法總結(List、Map、Set)

一、簡介

實際專案中,通常會用到迴圈遍歷List、Map等,今天有空總結了一下List/Map/Set的遍歷方法,如下:

二、List遍歷

List遍歷的方法一般有三種: 

【a】使用普通的for迴圈;

【b】使用增強for迴圈;

【c】使用Iterator介面遍歷;

下面以一個示例說明一下List的遍歷方法:

package com.wsh;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @Description: List介面遍歷方法
 * @Author: weishihuai
 * @Date: 2018/10/2 09:28
 */
public class TestList {

    private static List<String> list = new ArrayList<>();

    static {
        list.add("zhangsan");
        list.add("lisi");
        list.add("wangwu");
    }

    public static void main(String[] args) {
        /**
         * 方法一: 使用for迴圈
         */
        for (int i = 0,size = list.size(); i < size;i++) {
            //zhangsan lisi wangwu
            System.out.println(list.get(i));
        }

        /**
         * 方法二: 使用增強for迴圈
         */
        for (String string : list) {
            //zhangsan lisi wangwu
            System.out.println(string);
        }

        /**
         * 方法三: 使用Iterator方法
         */
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            //zhangsan lisi wangwu
            System.out.println(next);
        }

    }

}

三、Map遍歷

Map集合遍歷一般有四種方法:

【a】使用 hashMap.entrySet() 迴圈;

【b】使用Iterator介面遍歷;

【c】使用 hashMap.keySet()/hashMap.values()/Iterator;

【d】使用hashMap.keySet()/forEach 遍歷;

下面以一個示例說明一下Map的遍歷方法:

package com.wsh;

import java.util.*;

/**
 * @Description: Map介面的遍歷方法
 * @Author: weishihuai
 * @Date: 2018/10/2 09:52
 */
public class TestMap {

    private static HashMap<String,Object> hashMap = new HashMap<>();

    static {
        hashMap.put("name","zhangsan");
        hashMap.put("age","20");
        hashMap.put("sex","male");
    }

    public static void main(String[] args) {
        /**
         * 方法一: 使用 hashMap.entrySet() 迴圈
         */
        for(Map.Entry<String,Object> entry : hashMap.entrySet()) {
            String key = entry.getKey();
            String value = (String) entry.getValue();
//            sex=====>male
//            name=====>zhangsan
//            age=====>20
            System.out.println(key + "=====>" + value);
        }

        /**
         * 方法二: 使用Iterator介面遍歷
         */
        Iterator<Map.Entry<String, Object>> iterator = hashMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Object> entry = iterator.next();
            String key = entry.getKey();
            String value = (String) entry.getValue();
//            sex=====>male
//            name=====>zhangsan
//            age=====>20
            System.out.println(key + "=====>" + value);
        }

        /**
         * 方法三: 使用 hashMap.keySet()/hashMap.values()/Iterator
         */
        Set<String> strings = hashMap.keySet();
        Collection<Object> values = hashMap.values();
        for (Iterator<String> iterator1 = strings.iterator();iterator1.hasNext();) {
            String key = iterator1.next();
            String value = (String) hashMap.get(key);
//            sex=====>male
//            name=====>zhangsan
//            age=====>20
            System.out.println(key + "=====>" + value);
        }
        for (Iterator i = values.iterator(); i.hasNext();) {
            String s = (String) i.next();
            // 迴圈輸出value
//            male
//            zhangsan
//            20
            System.out.println(s);
        }

        /**
         * 方法四: 使用hashMap.keySet()/forEach 遍歷
         */
        for (String key : hashMap.keySet()) {
            String value = (String) hashMap.get(key);
//            sex=====>male
//            name=====>zhangsan
//            age=====>20
            System.out.println(key + "=====>" + value);
        }

    }

}

四、Set遍歷

Set集合遍歷一般有兩種方法:

【a】使用Iterator介面遍歷;

【b】使用增強for迴圈遍歷;

下面以一個示例說明一下Set的遍歷方法:

package com.wsh;

import java.util.HashSet;
import java.util.Iterator;

/**
 * @Description: Set介面的遍歷方法
 * @author: weishihuai
 * @Date: 2018/10/2 09:01
 */
public class TestSet {

    private static HashSet<String> hashSet = new HashSet<>();

    static {
        hashSet.add("zhangsan");
        hashSet.add("lisi");
        hashSet.add("wangwu");
    }

    public static void main(String[] args) {
        /**
         * 方法一: Iterator遍歷
         */
        Iterator iterator = hashSet.iterator();
        //判斷是否還有元素沒有被遍歷
        while (iterator.hasNext()) {
            //返回當前遊標對應的元素,並把遊標移向下一個元素
            String next = (String) iterator.next();
            //lisi zhangsan wangwu
            System.out.println(next);
        }

        for (Iterator iterator1 = hashSet.iterator(); iterator1.hasNext(); ) {
            //返回當前遊標對應的元素,並把遊標移向下一個元素
            String next = (String) iterator1.next();
            //lisi zhangsan wangwu
            System.out.println(next);
        }

        /**
         * 方法二: 使用增強for迴圈
         */
        for (String string : hashSet) {
            //lisi zhangsan wangwu
            System.out.println(string);
        }
    }

}

五、總結

以上是關於Java中常用集合List、Map、Set遍歷方法的講解,這只是作者的一些總結,僅供大家參考學習,希望對大家有所幫助,一起學習,一起進步。