1 Map集合的介绍
java.util.Map
集合,里面保存的数据是成对存在的,称之为双列集合。存储的数据,我们称为键值对。 之前所学的Collection集合中元素单个单个存在的,称为单列集合 2 特点
Map
K:键的数据类型;V:值的数据类型 - 特点 :
- 键不能重复,值可以重复
- 键和值是 一 一 对应的,通过键可以找到对应的值
- (键 + 值) 一起是一个整体 我们称之为“键值对” 或者 “键值对对象”,在Java中叫做“Entry对象”
使用场景
HashMap:
- 此前的HashSet底层实现就是HashMap完成的,HashSet保存的元素其实就是HashMap集合中保存的键,底层结构是哈希表结构,具有键唯一,无序,特点。
- LinkedHashMap:
- 底层结构是有链表和哈希表结构,去重,有序
TreeMap:
public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
- public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
- public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
- public Set
keySet(): 获取Map集合中所有的键,存储到Set集合中。 public boolean containKey(Object key):判断该集合中是否有此键。 /* Map中常用方法 :
public V put(K key, V value): 把指定的键与指定的值添加到Map集合中
public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值
public V get(Object key) 根据指定的键,在Map集合中获取对应的值
public SetkeySet(): 获取Map集合中所有的键,存储到Set集合中
public boolean containKey(Object key): 判断该集合中是否有此键。需求 : 将以下数据保存到Map集合中 , 进行测试以上方法
“文章“ “马伊琍
“谢霆锋” “王菲”
“李亚鹏” “王菲”*/
public class MapDemo {
public static void main(String[] args) {
// 创建双列集合对象
Maphm = new HashMap<>(); // 添加元素<br /> // public V put(K key, V value): 把指定的键与指定的值添加到Map集合中<br /> hm.put("文章", "马伊琍");<br /> hm.put("谢霆锋", "王菲");<br /> hm.put("李亚鹏", "王菲");
// public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值<br /> // System.out.println(hm.remove("谢霆锋"));
// public V get(Object key) 根据指定的键,在Map集合中获取对应的值<br /> // System.out.println(hm.get("李亚鹏"));
// public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中<br />// Set<String> set = hm.keySet();<br />// for (String key : set) {<br />// System.out.println(key);<br />// }
// public boolean containKey(Object key): 判断该集合中是否有此键。<br /> // System.out.println(hm.containsKey("李亚鹏"));
System.out.println(hm);// 打印集合 , 打印的是集合中的元素<br /> }<br />}
5 Map集合的遍历
第一种方式 : 键找值
例子:周瑜 — 小乔孙策 — 大乔刘备 — 孙尚香诸葛亮 — 黄月英
// 获取健集合
Set
// 遍历健集合 , 通过键找值
for (String key : set) {
String value = hm.get(key);
System.out.println(key + “—-“ + value);
}
第二种方式 : 获取键值对对象 , 在找到键和值
/ 需求 : 创建Map集合对象 , 往集合中添加以下三对元素
使用获取Entry对象集合,在找到键和值 遍历集合
张无忌 — 赵敏
张翠山 — 殷素素
张三丰 — 郭芙
/
public class MapTest2 {
public static void main(String[] args) {
// 创建集合对象
Map
// 添加元素
hm.put(“张无忌”, “赵敏”);
hm.put(“张翠山”, “殷素素”);
hm.put(“张三丰”, “郭芙”);
// 获取键值对对象集合<br /> Set<Map.Entry<String, String>> set = hm.entrySet();
// 遍历键值对对象集合 , 获取每一个键值对对象<br /> for (Map.Entry<String, String> entry : set) {<br /> // 通过entry对象获取键<br /> String key = entry.getKey();<br /> // 通过entry对象获取值<br /> String value = entry.getValue();<br /> System.out.println(key + "--" + value);<br /> }<br /> }<br />}