一,Map 双列集合
概述:现实生活中会看到一种集合,用户名--密码,这种关系一一对应,叫做映射。Java中提供
了专门的集合类用来存放这种关系----》Java.util.Map
特点:
1,双列,一个元素包含两个值 key value
2,key,value 数据类型可相同也可不同
3,key 唯一不重复,value可重复
4,key value 一一对应
5,无序的
二,HashMap
Map的实现子类。底层也是通过哈希码表存储。方式是数组加链表形式。
★,Map中没有获取迭代器的方法
main方法中只能调用static 静态方法。
三,常用方法
put(key,value); 添加键值对
remove(key); 根据key移除对应对
get(key); 根据key获取对应value
containsKey(key); 判断是否包含指定键
keySet(Map); 获取Map集合中所有key
entrySet(); 获取Map集合中的 Map.Entry<key,value>映射关系的Entry对象
四,遍历使用方法:
1,通过k 获取 v:
1》使用Map集合中 keySet()方法;把Map-->key取出-->存储到一个Set集合中
2》遍历Set集合-->获取Map集合中的键key
3》通过Map集合-->get(key)方法获取相应值value
2,用过Entry映射关系获取v
1》使用Map集合中entrySet()方法;把Map-->Entry映射对象取出-->存到Set集合中
2》遍历Set集合-->获取每一个Entry对象
3》使用Entry对象中的方法-->getKey(); getValue();-->获取对应键值对
如:
package cn.kgc.demo01.map;
import java.util.*;
public class Demo02EntrySet {
public static void main(String[] args) {
getKV();
}
public static void getKV(){
//1,创建集合
HashMap<String, Integer> mm = new HashMap<>();
mm.put("杨幂",28);
mm.put("刘诗诗",26);
mm.put("景甜",28);
mm.put("林志玲",35);
System.out.println(mm);
// 2,使用 entrySey() 获取映射对象
Set<Map.Entry<String, Integer>> set = mm.entrySet();
// 3 ,遍历获取entry 对象
Iterator<Map.Entry<String, Integer>> it = set.iterator();
while (it.hasNext()){
Map.Entry<String, Integer> entry = it.next();
// 根据entry对象调用get方法获取key和value
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key+"="+value);
}
// 4,增强for
System.out.println("************************************");
for (Map.Entry entry:set){
String key = (String) entry.getKey();
Integer value =(Integer) entry.getValue();
System.out.println(key+":"+value);
}
System.out.println("************************************");
for (Map.Entry<String,Integer> entry:mm.entrySet()){
System.out.println(entry.getKey()+"="+entry.getValue());
}
}
}