遍历set,list,map有几种方式,举例说明

2025-04-01 00:32:14
推荐回答(1个)
回答1:

package com.shellway.javase;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

import org.junit.Test;

public class TestCollection {
    
    public static void print(Collection c){
        Iterator it = c.iterator();
        while (it.hasNext()) {
            Object object = (Object) it.next();
            System.out.println(object);
        }
    }
    
    @Test
    public void demo1(){
        Set set = new HashSet();
        set.add("AAA");
        set.add("BBB");
        set.add("CCC");
        print(set);
        
        //Set的第一种遍历方式:利用Iterator
        Iterator it1 = set.iterator();
        for (String ss : set) {
            System.out.println(ss);
        }
        //Set的第一种遍历方式:利用foreach
        for (String sss : set) {
            System.out.println(sss);
        }
        
        
        List list = new ArrayList();
        list.add("DDDDD");
        list.add("EEEEE");
        list.add("FFFFF");
        print(list);
        
        //List的第一种遍历方式:因为list有顺序,利用size()和get()方法获取
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        //List的第二种遍历方式:利用Iterator
        Iterator it = list.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        //List的第三种遍历方式:利用foreach
        for (String s2 : list) {
            System.out.println(s2);
        }
        
        
        Map map = new TreeMap();
        map.put("Jerry", "10000");
        map.put("shellway", "20000");
        map.put("Kizi", "30000");
        print(map.entrySet());
        //Map的第一种遍历方式:先获得key,再获得值value
        Set sett = map.keySet();
        for (String s : sett) {
            System.out.println(s+":"+map.get(s));
        }
        //Map的第二种遍历方式:获得键值对
        for (Map.Entry entry : map.entrySet()) {
            System.out.println(entry.getKey()+" : "+entry.getValue());
        }
    }
}

使用泛型对集合对象进行类型安全检查和遍历