map
- Map 保存键值对 K V
- 无序 key 不可重复 value 可重
- Map和Collection不一样,但基本操作是一样的
- Map用来保存映射关系
- 比如 商品,商品的名称,产地,单价等属性,都是商品的属性,但是购买数量不是商品的属性,不能放到商品类
- 那么如何存储这个商品 购买的数量呢? 使用map,用商品作为key,购买数量作为value
- 或者是一些统计操作,比如 现在有一个字符串“sdafsa”,需求是每个字符出现的次数
- 字符作为key,次数作为value
- map不能直接遍历,需要转换为集合之后进行比遍历
- Properties 一个特殊的map,键和值 比较都是字符串
- TreeMap 添加的元素必须按照某个规则进行排序
1 被添加的元素 实现 Comparabl
2 单独提供一个 Comparator 比较器类
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);
Collection values = map.values();
for (Object object : values) {
System.out.println(object);
}
System.out.println("------");
Set keys = map.keySet();
for (Object key : keys) {
Object value = map.get(key);
System.out.println(key + ":" + value);
}
System.out.println("=======");
Set entrys = map.entrySet();
for (Object object : entrys) {
Entry entry = (Entry) object;
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
泛型
- 类型检查,在编译过程中检查类型是否匹配
- 泛型之只能是引用类型,不能写基本类型
- 优点 : 统一了数据类型,减少了强制类型转换,使用
- 缺点 : 统一了数据类型,只能保存单一类型的数据
- E : Element , K : Key , V : Value , T : Type
public static void main(String[] args) {
List list = new ArrayList();
list.add(1);
list.add("");
list.add(new Map_05_Generic_01());
for (Object object : list) {
}
List<Integer> ss = new ArrayList<Integer>();
ss.add(2);
for (Integer integer : ss) {
integer.intValue();
}
}