map treemap map的迭代

Map 是一组成对的“键值对”对象,允许使用键 (key) 来查找值 (value)。它提供了一个映射表,可以通过某个对象来查找另一个对象。它也被称作 关联数组,因为它将某些对象与另外一些对象关联在一起;或者称作 字典,通过键对象来查找值对象,就像在字典中使用单词来定义一样。
Map 基本特性:
以 key-value 键值对的形式存储数据,可通过 key 来查找 value;
对于每一个 key,Map 只接受存储一次;
通过 put(key,value) 方法添加一个值,通过 get(key) 方法获取与这个键关联的值。
TreeMap
TreeMap 是基于红黑树实现,用来保存一个有序的键值对 (key-value) 集合,有两种排序方式,默认是自然排序,还可以定制排序。
Map 的遍历
Map 是以键值对的方式来存储,那么只要获取所有的键 (key) 的集合,然后通过遍历键的集合去获取所有的值 (value),就完成了对 Map 的遍历,代码如下:

public static void main(String[] args) {
        //通过 HashMap 创建 map 对象
        Map<String, String> map = new HashMap<>();
        //向 Map 添加键值对
        map.put("a", "rat");
        map.put("b", "cat");
        map.put("b", "dog");
        map.put("c", "rat");
        map.put(null, null);
        map.put(null, null);

        //通过 keySet 方法返回所有键组成的 set
        Set<String> keys = map.keySet();
        //遍历 map
        for (String key : keys) {
            System.out.println("key:" + key + ",value:" + map.get(key));
        }
    }

打印如下:

key:null,value:null
key:a,value:rat
key:b,value:dog
key:c,value:rat

通过 Map 的 keySet() 方法获取所有键的 Set,然后通过 foreach 语句来遍历整个 Map。keySet() 方法只能获取键的 Set,Map 还有一个 entrySet() 方法,可以获取所有的键值对,然后直接遍历,这下就省事了:

public static void main(String[] args) {
        //通过 HashMap 创建 map 对象
        Map<String, String> map = new HashMap<>();
        //向 Map 添加键值对
        map.put("a", "rat");
        map.put("b", "cat");
        map.put("b", "dog");
        map.put("c", "rat");
        map.put(null, null);
        map.put(null, null);

        //获取 map 的所有键值对
        Set<Map.Entry<String, String>> entries = map.entrySet();
        //遍历 map
        for (Map.Entry<String, String> entry : entries) {
            System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());
        }
    }

上述代码使用的是 foreach 语法,使用迭代器也是可以的,创建迭代器的代价较小,因此这是个比较常用的方式,迭代器后面会做详细介绍,这里简单展示迭代器在 Map 遍历中的使用:

 public static void main(String[] args) {
        //通过 HashMap 创建 map 对象
        Map<String, String> map = new HashMap<>();
        //向 Map 添加键值对
        map.put("a", "rat");
        map.put("b", "cat");
        map.put("b", "dog");
        map.put("c", "rat");
        map.put(null, null);
        map.put(null, null);

        //获取 map 的所有键值并生成迭代器对象
        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
        //map 遍历
        while (iterator.hasNext()) {
            Map.Entry<String, String> next =  iterator.next();
            System.out.println("key:" + next.getKey() + ",value:" + next.getValue());
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值