java数组和集合的遍历(涵盖多种常用方式)

前言

本次内容涵盖了数组和集合的几乎所有常用的遍历方法,制作不易,勿忘点赞收藏。

一、数组(3种)

1.for循环

示例代码

        int[] a = new int[5];
        for (int i = 0; i < a.length; i++) {
            a[i] = i;
        }
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }

 运行结果

2.增强for循环

示例代码

        int[] a = new int[5];
        for (int i = 0; i < a.length; i++) {
            a[i] = i;
        }
        for (int i:a) {
            System.out.println(i);
        }

 运行结果

3.利用工具类Arrays类的toString()方法

示例代码

        int[] a = new int[5];
        for (int i = 0; i < a.length; i++) {
            a[i] = i;
        }
        System.out.println(Arrays.toString(a));
        //底层用StringBuilder拼接  返回一个字符串

 运行结果

二、List集合(5种) 

1.for循环 

        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add(i);
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    

 

2.增强for循环 

        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add(i);
        }
        for (Integer i : list ){
            System.out.println(i);
        }

 

3.迭代器 

        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add(i);
        }
        //获取集合的迭代器
        //指针默认指向0索引
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()) {
            Integer next = iterator.next();
            System.out.println(next);
        }

 

4.列表迭代器 

        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add(i);
        }

        //列表迭代器
        //获取一个列表选代器的对象,里面的指针默认也是指向0素引的

        //额外添加了一个方法:在遍历的过程中,可以添加元素
        ListIterator<Integer> listIterator = list.listIterator();
        while (listIterator.hasNext()) {
            int str = listIterator.next();
            if (str == 2){
                listIterator.add(4);
            }
            System.out.println(str);
        }
        System.out.println(list);

 

5.forEach()方法(Lambda表达式 Stream API)

        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add(i);
        }

        //lambda表达式
        //forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素
        //并把每一个元素传递给下面的accept方法
        //accept方法的形参s,依次表示集合中的每一个元素
        list.forEach(s -> System.out.println(s));

        //lambda表达式 Stream API
        //list.forEach(System.out::println);

 

三、Set集合 (3种)

1.增强for循环

        HashSet<Integer> hashSet = new HashSet<>();
        for (int i = 0; i < 5; i++) {
            hashSet.add(i);
        }
        for (Integer integer : hashSet) {
            System.out.println(integer);
        }

 

2.迭代器 

        HashSet<Integer> hashSet = new HashSet<>();
        for (int i = 0; i < 5; i++) {
            hashSet.add(i);
        }
        //迭代器遍历集合
        Iterator<Integer> iterator = hashSet.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

 

 3.forEach()方法(Lambda表达式 Stream API)

        HashSet<Integer> hashSet = new HashSet<>();
        for (int i = 0; i < 5; i++) {
            hashSet.add(i);
        }
        //lambda表达式
        hashSet.forEach(s-> System.out.println(s));

        //lambda表达式 streamAPI
        //hashSet.forEach(System.out::println);

 

 四、Map集合(4种)

1.keySet()方法获取键

通过Map集合的keySet()方法获取所有的键的Set集合,遍历Set集合通过键获取值

        HashMap<String, Integer> hashMap = new HashMap<>();
        for (int i = 0; i < 5; i++) {
            hashMap.put("key" + i, i);
        }
        //通过keySet获取所有key的Set集合
        Set<String> keys = hashMap.keySet();
        //遍历Set集合,通过键获取值
        for (String key : keys) {
            System.out.println(key + ":" + hashMap.get(key));
        }

 

 2.values()方法获取值

通过Map集合的values()方法获取所有value的Collection集合,遍历Collection集合获得值

        HashMap<String, Integer> hashMap = new HashMap<>();
        for (int i = 0; i < 5; i++) {
            hashMap.put("key" + i, i);
        }

        //通过values获取所有value的Collection集合
        Collection<Integer> values = hashMap.values();
        for (Integer value : values) {
            System.out.println(value);
        }

 

3.entrySet()方法获取键值对 

通过Map集合entrySet()方法获取所有键值对的Set集合,遍历Set集合,获取Map$Entry对象,并使用该类的getKey()和getValue()方法获取键和值

        HashMap<String, Integer> hashMap = new HashMap<>();
        for (int i = 0; i < 5; i++) {
            hashMap.put("key" + i, i);
        }

        //通过entrySet获取所有键值对
        Set<Map.Entry<String, Integer>> entries = hashMap.entrySet();
        //遍历Set集合
        //通过Map$Entry类的getKey()和getValue()方法获取键和值
        for (Map.Entry<String, Integer> entry : entries) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }

 

 4.forEach()方法

        HashMap<String, Integer> hashMap = new HashMap<>();
        for (int i = 0; i < 5; i++) {
            hashMap.put("key" + i, i);
        }

        //lambda表达式遍历
        hashMap.forEach((k, v) -> System.out.println(k + ":" + v));

 

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值