美文网首页
java中常见的 List Map Set 遍历方式

java中常见的 List Map Set 遍历方式

作者: 落云和枫 | 来源:发表于2019-07-11 19:00 被阅读0次

    一 Map常见遍历方式

    package com.plwf.lake.lyhf;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    
    public class MapTraversing {
        public static void main(String[] args){
            Map<String,String> map = new HashMap<>();
            map.put("key1","value1");
            map.put("key2","value2");
            map.put("key3","value3");
    
            //1. 普遍使用,二次取值
            System.out.println("通过Map.keySet遍历key和value");
            for(String key: map.keySet()){
                System.out.println("key="+key+" and value= "+map.get(key));
            }
    
            //2. 通过Map.entrySet使用iterator遍历key和value 也就是迭代器
            System.out.println("通过Map.entrySet使用iterator遍历key和value 也就是迭代器");
            Iterator<Map.Entry<String,String>> it = map.entrySet().iterator();
            while(it.hasNext()){
                Map.Entry<String,String> entry = it.next();
                System.out.println("key="+entry.getKey()+" and value= "+entry.getValue());
            }
            //3. 推荐,尤其是容量大时
            System.out.println("通过Map.entrySet遍历key和value");
            for (Map.Entry<String, String> entry : map.entrySet()) {
                System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
            }
    
            //4. 通过Map.values()遍历所有的value,但不能遍历key
            for (String v : map.values()) {
                System.out.println("value= " + v);
            }
            //5. lambda遍历map
            map.forEach((k,v)-> System.out.println(k+"-<key=====value->"+v));
    
        }
    }
    
    

    一 Set常见遍历方式

    package  com.plwf.lake.lyhf;
    
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.LinkedHashSet;
    import java.util.Set;
    
    public class SetTraversing {
        public static void main(String[] args) {
    
            //Hashset 它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变
            Set<String> set = new HashSet<>();
            set.add("value1");
            set.add("value2");
            set.add("value3");
    
            //LinkedHashSet 定义了迭代顺序,即按照将元素插入到集合中的顺序(插入顺序)进行迭代
            Set<String> setOrder = new LinkedHashSet<>();
            setOrder.add("value1");
            setOrder.add("value2");
            setOrder.add("value3");
            //1. 迭代遍历
            Iterator<String> it = set.iterator();
            while (it.hasNext()) {
                String str = it.next();
                System.out.println(str);
            }
    
            //2. for循环遍
            for (String str : setOrder) {
                System.out.println(str);
            }
    
            //2-1. 增强型for循环 优点还体现在泛型 假如:set中存放的是Object
            Set<Object> setObject = new HashSet<>();
            setObject.add(111);
            setObject.add("222");
            for (Object obj : setObject) {
                if (obj instanceof Integer) {
                    int resultValue = (Integer) obj;
                    System.out.println("Integer:" + resultValue);
                } else if (obj instanceof String) {
                    String resultValue = (String) obj;
                    System.out.println("String:" + resultValue);
                }
            }
    
            //3. 集合类的通用遍历方式, 从很早的版本就有, 用迭代器迭代
            for (Iterator it2 = set.iterator(); it2.hasNext(); ) {
                System.out.println(it2.next());
            }
            //4. jdk1.8之后
            set.forEach(System.out::println);
        }
    }
    

    List 遍历方式

    package com.plwf.lake.lyhf;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.ListIterator;
    
    public class ListTraversing {
        public static void main(String[] args) {
            // 有序元素 可重复 遍历
            List<String> arrayList=new ArrayList<>();
            arrayList.add("value1");
            arrayList.add("value2");
    
            //1. foreach遍历(不需要index推荐)
            for(String str:arrayList){
                System.out.println(str);
            }
    
            //2. for遍历(需要index推荐)
            for (int i=0,n=arrayList.size(); i < n ; i++) {
                System.out.println(arrayList.get(i));
            }
    
            //3. 迭代器遍历
            Iterator<String> it = arrayList.iterator();
            while(it.hasNext())
            {
                System.out.println(it.next());
            }
    
            //4. jdk1.8之后
            arrayList.forEach(System.out::println);
    
            //5.使用ListIterator
            ListIterator<String> listIt = arrayList.listIterator();
            while(listIt.hasNext())
            {
                System.out.println(listIt.next());
            }
        }
    }
    

    拾荒者的笔记:原文链接

    相关文章

      网友评论

          本文标题:java中常见的 List Map Set 遍历方式

          本文链接:https://www.haomeiwen.com/subject/qofjkctx.html