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遍历方法的讲解,这只是作者的一些总结,仅供大家参考学习,希望对大家有所帮助,一起学习,一起进步。

猜你喜欢

转载自blog.csdn.net/Weixiaohuai/article/details/82938134