- Map
Map保存键值对 K V
-
无序 key 不可重复 value 可重复
-
Map和Collection不一样.但基本操作是一样的
-
Map用来保存映射关系,
-
比如 商品,商品的名称,产地,单价等属性,都是商品的属性,但是购买数量,就不是商品的属性,放到商品类中也不合适
-
那么如何存储这个商品 购买的数量呢? 使用map,用商品作为key,购买数量作为value即可
-
或者是一些统计操作,比如 现在有一个字符串 "ascsncjkashdiqhiehiasgdgasddcasi" , 需求是 统计每个字符出现的个数
-
字符作为key,次数作为value,
常用方法
map不能直接遍历,需要转换为集合之后进行遍历
遍历
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
// values : 获取所有的value 返回一个collection
Collection values = map.values();
for (Object object : values) {
System.out.println(object);
}
System.out.println("----");
// keySet : 获取所有的key,返回Set
Set keys = map.keySet();
for (Object key : keys) {
// 获取value
Object value = map.get(key);
System.out.println(key+" : "+value);
}
System.out.println("=======");
// entrySet : entry对象中可以存储key和value,我们只需要保存entry 就等于把kv都存储了
// 把map中的kv 封装到entry对象中,并以set方式返回
Set entrys = map.entrySet();
for (Object object : entrys) {
Entry entry = (Entry) object;
System.out.println(entry.getKey()+" : "+entry.getValue());
}
}
Properties 一个特殊的map , 键和值 比较都是字符串
TreeMap
添加的元素必须按照某个规则进行排序
-
1 被添加的元素 实现 Comparable
-
2 单独提供一个 Comparator 比较器类
泛型
类型检查,在编译过程中检查类型是否匹配
*
- 泛型之只能是引用类型,不能写基本类型
- 优点 : 统一了数据类型,减少了强制类型转换,使用方便
- 缺点 : 统一了数据类型,只能保存单一类型的数据
- E : Element , K : Key , V : Value , T : Type