Set、List、Map的遍历

Set

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

public class Test_sort{
    public static void main(String[] args) {
        Set<Integer>set = new HashSet<>();

        set.add(10);
        set.add(60);
        set.add(5);
        set.add(55);
        set.add(45);

        //方法一:使用foreach循环
        for(Integer integer : set){
            System.out.print(integer + "\t");
        }
        System.out.println();
        //方法二:使用迭代器
        Iterator<Integer>it = set.iterator();
        while(it.hasNext()){
            System.out.print(it.next() + "\t");
        }
        System.out.println();
        //方法三:转换为数组
        Integer[]arr = new Integer[set.size()];
        set.toArray(arr);
        for(Integer integer : arr){
            System.out.print(integer + "\t");
        }
    }
}

List

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

public class list_Output{
    public static void main(String[] args) {
        List<Integer>list = new ArrayList<>();

        list.add(10);
        list.add(60);
        list.add(5);
        list.add(55);
        list.add(45);

        //方法一:foreach循环
        for(Integer integer : list){
            System.out.print(integer + "\t");
        }
        System.out.println();
        //方法二:转化为数组
        Integer[]arr = new Integer[list.size()];
        list.toArray(arr);
        for(Integer integer : arr){
            System.out.print(integer + "\t");
        }
        System.out.println();
        //方法三:使用迭代器
        Iterator<Integer>it = list.iterator();
        while(it.hasNext()){
            System.out.print(it.next() + "\t");
        }
        System.out.println();
        //方法四:使用ListIterator
        ListIterator<Integer>lit = list.listIterator();
        while(lit.hasNext()){
            System.out.print(lit.next() + "\t");
        }
    }
}

Map

import java.util.*;

public class mapOutput{
    public static void main(String[] args) {
        Map<String,Integer>map = new HashMap<>();

        map.put("A",25);
        map.put("B",14);
        map.put("C",45);
        map.put("D",35);
        map.put("E",40);

        //方法一:使用keySet()方法
        Set<String>set1 = map.keySet();
        for(String key : set1){
            System.out.println("[key:" + key + "\tvalue:" + map.get(key) + "]");
        }
        System.out.println();
        //方法二:使用Iterator和Set
        /*
        值得注意的是:Map接口中并没有iterator()方法的定义,
        因此我们无法直接使用迭代器进行遍历数组

        我们需要使用Set集合来存放key,间接的使用迭代器来进行遍历
         */
        Set<String>set2 = map.keySet();
        Iterator<String>it2 = set2.iterator();
        while(it2.hasNext()){
            String key = it2.next();
            System.out.println("[key:" + key + "\tvalue:" + map.get(key) + "]");
        }
        System.out.println();
        //方法三:使用Iterator和Map.Entry<K,V>
        /*
        使用Map.Entry<K,V>返回map中包含的映射关系的Set视图,
        其原理与方法二类似,不过特殊的是Map.Entry<K,V>对象可以
        单独根据key查询value
         */
        Set<Map.Entry<String,Integer>>set3 = map.entrySet();
        Iterator<Map.Entry<String,Integer>>it3 = set3.iterator();
        while(it2.hasNext()){
            Map.Entry<String,Integer>entry = it3.next();
            System.out.println("[key:" + entry.getKey() + "\tvalue:" + entry.getValue() + "]");
        }
        System.out.println();
        //方法四:直接返回value,不建议使用
        Collection<Integer>set4 = map.values();
        for(Integer value : set4){
            System.out.println("value:" + value);
        }
    }
}
发布了21 篇原创文章 · 获赞 8 · 访问量 1843

猜你喜欢

转载自blog.csdn.net/weixin_46192593/article/details/104993008