Map 接口

1、Map、Collection 并列

2、Map 保存具有映射关系的数据:key - value(双列元素)

3、key、value 可以是任意引用数据类型,常用 String 对象作为 key

4、key 不允许重复,key 只允许一个 null,value 允许重复,value 允许多个 null

5、添加 key - value,若集合有相同 key,value 会被替换

6、key - value 存在单向一对一关系

7、无序(添加、取出顺序不一致)、无索引,不保证映射顺序

8、key - value 封装在 Node 对象,Node 是 HashMap 的静态内部类,Node 实现 Entry 接口,Entry 是 Map 的内部接口

9、key - value 编译类型:Map.Entry,运行类型:HashMap$Node

10、Map.Entry 特有方法

K getKey();
V getValue();
V setValue(V value);

 

为了方便遍历,提供如下方法

(1)返回 Map 中 key - value 映射的集合,编译类型:Set,运行类型:HashMap$EntrySet

Set<Map.Entry<K, V>> entrySet();
transient Set<Map.Entry<K,V>> entrySet;

(2)返回 Map 中只含 key 的集合,编译类型:Set,运行类型:HashMap$KeySet

Set<K> keySet();

(3)返回 Map 中只含 value 的集合,编译类型:Collection,运行类型:HashMap$Values

Collection<V> values();

 

遍历方式

Map<K, V> map = new HashMap<>();

1、key 的 Set 集合

Set<K> keySet = map.keySet();

(1)使用迭代器

Iterator<K> iterator = keySet.iterator();
while (iterator.hasNext()) {
    K key = iterator.next();
}

(2)增强 for 循环

for (K key : keySet) {
    访问key;
}

2、value 的 Collection 集合

Collection<V> values = map.values();

(1)使用迭代器

Iterator<V> iterator = values.iterator();
while (iterator.hasNext()){
    V value = iterator.next();
}

(2)增强 for 循环

for (V value : values) {
    访问value;
}

3、key - value 的 Set 集合

Set<Map.Entry<K, V>> entrySet = map.entrySet();

(1)使用迭代器

Iterator<Map.Entry<K, V>> iterator = entrySet.iterator();
while (iterator.hasNext()) {
    Map.Entry<K, V> entry = iterator.next();
}

(2)增强 for 循环

for (Map.Entry<K, V> entry : entrySet) {
    访问键值对;
}

 

posted @   半条咸鱼  阅读(49)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示