List,Map,Stack,Queue,Set的遍历

本文主要介绍标题中5中集合的常规遍历方式

1、List的遍历方式(两种)

 List<String> list = new ArrayList<>();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        list.add("dd");
        list.add("ee");
        int size = list.size();
        for (int i = 0; i < size; i++) {
            System.out.println(list.get(i));
        }
        for (String str : list) {
            System.out.println(str);
        }

2、Map的遍历(四种方式):

Map<String, Integer> map = new HashMap<>();
        map.put("aa", 1);
        map.put("bb", 2);
        map.put("cc", 3);
        map.put("dd", 4);
        map.put("ee", 5);
        Set<Entry<String, Integer>> entrySet = map.entrySet();
        // 第一种
        for (Entry<String, Integer> entry : entrySet) {
            System.out.println("key:" + entry.getKey() + "  val:" + entry.getValue());
        }
        System.out.println("---------------------------");
        // 第二种
        Iterator<Entry<String, Integer>> iterator = entrySet.iterator();
        while (iterator.hasNext()) {
            Entry<String, Integer> next = iterator.next();
            System.out.println("key:" + next.getKey() + "  val:" + next.getValue());
        }
        System.out.println("---------------------------");
        // 第三种
        Set<String> set = map.keySet();
        for (String key : set) {
            Integer val = map.get(key);
            System.out.println("key:" + key + "  val:" + val);
        }
        System.out.println("---------------------------");
        // 第四种(补充):对keys进行排序,实现map的有序输出
        List<String> keys = new ArrayList<>(set);
        Collections.sort(keys);
        for (String key : keys) {
            Integer val = map.get(key);
            System.out.println("key:" + key "  val:" + val);
        }

3、Stack的遍历(2种)以及stack的pop和peek的区别

Stack<String> stack = new Stack<>();
        stack.push("aa");
        stack.push("bb");
        stack.push("cc");
        stack.push("dd");
        stack.push("ee");
        for (String str : stack) {
            System.out.println(str);
        }
        System.out.println("------------------------");
        Iterator<String> iterator = stack.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        System.out.println("after pop:" + stack.pop());
        System.out.println("last count:" + stack.size());

        System.out.println("after peek:" + stack.peek());
        System.out.println("last count:" + stack.size());

运行结果:

aa
bb
cc
dd
ee
------------------------
aa
bb
cc
dd
ee
after pop:ee
last count:4
after peek:dd
last count:4

4、Queue的遍历方式(4种)以及poll()和peek()的区别:

Queue<String> queue = new ConcurrentLinkedQueue<>();// 线程安全
        queue.add("aa");
        queue.add("bb");
        queue.add("cc");
        queue.add("dd");
        queue.add("ee");
        for (String str : queue) {
            System.out.println(str);
        }
        System.out.println("---------------------");
        Iterator<String> iterator = queue.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        System.out.println("---------------------");
        int size = queue.size();
        for (int i = 0; i < size; i++) {
            System.out.println(queue.poll() + "  last count:" + queue.size());
        }
        System.out.println("----------队列中已经没有对象了-----------");
        queue.add("aa");
        queue.add("bb");
        queue.add("cc");
        queue.add("dd");
        queue.add("ee");
        for (int i = 0; i < size; i++) {
            System.out.println(queue.peek() + "  last count:" + queue.size());
        }

运行结果:

aa
bb
cc
dd
ee
---------------------
aa
bb
cc
dd
ee
---------------------
aa  last count:4
bb  last count:3
cc  last count:2
dd  last count:1
ee  last count:0
----------队列中已经没有对象了-----------
aa  last count:5
aa  last count:5
aa  last count:5
aa  last count:5
aa  last count:5

5、Set的遍历(2种)

 Set<String> set = new HashSet<>();
        set.add("aa");
        set.add("bb");
        set.add("cc");
        set.add("dd");
        set.add("ee");
        for (String str : set) {
            System.out.println(str);
        }
        System.out.println("----------------------");
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值