JAVA集合&&数组(三)——Map
目录:
..........1、Map
Map接口定义的集合又称为查找表,用于储存所谓的‘key-value’映射对。Key不可以重复。
..........2、Map接口的实现类:
根据内部实现不同,Map接口有多种实现类,常用的有:
1) 内部为hash表实现的HashMap
2) 内部为排序二叉树实现的TreeMap
..........3、Map接口定义的方法有
1) put
2) get
3) remove
4) constainsKey
..........4、HashMap实现原理
一、Map
Map用于保存具有映射关系的数据,保存着两组值,一组值用于保存Map里的key,一组值用于保存map里的value。
1、key和value都可以是任何类型的数据;
2、key不能重复,同一个Map中的任何两个key通过equsls方法比较总是返回true;
3、所有key放在一起构成一个set集合(所有key没有顺序,不能重复)
二、Map接口实现类:
HashMap
LinkedHashMap
SortMap
TreeMap
EnumMap
三、Map接口定义的的方法
1、向Map中存放、获取、删除元素
存放元素:map.put();
获取元素:map.get();
删除元素:map.remove();
查询是否包含某个key:map.constainsKey();
package cn.qiuuuu.map;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class MapExercise {
public static void main(String[] args) {
Map mapHash=new HashMap();
Map mapTree=new TreeMap();
//向mapHash中存入值
mapHash.put("ZhangSan", 90);
mapHash.put("LiSi", 100);
mapHash.put("WangWu", 80);
mapHash.put("XiaoLi", 60);
//输出mapHash中的内容
System.out.println(mapHash);
//
mapHash.put("xiaoLi", 77);
System.out.println(mapHash);
mapHash.put("wuwu", 60);
System.out.println(mapHash);
mapHash.put("XiaoLi", 77);
System.out.println(mapHash);
//输出LiSi的成绩
int math=mapHash.get("LiSi");
System.out.println("LiSi的数学成绩为:"+math);
//删除与LiSi相关的信息
mapHash.remove("LiSi");
System.out.println(mapHash);
//是否包含某个Key
boolean constain=mapHash.containsKey("ZhangSan");
System.out.println(constain);
}
}
输出结果为:
2、遍历Map集合的四种方式
通过key遍历
通过entry实例遍历
通过value遍历
Map map = new HashMap();
map.put("chinese", 100);
map.put("math", 99);
map.put("english", 100);
map.put("PE", 90);
// 1.通过key遍历
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.println(key + " : " + value + "分");
}
// 2.通过entry遍历
for (Entry entry : map.entrySet()) {
String key = entry.getKey();
int value = entry.getValue();
System.out.println(key + " : " + value+ "分");
}
// 3.通过value遍历
for (Integer value : map.values()) {
System.out.println(value+ "分");
}
四、HampMap实现原理