1.map集合是存储键值对的集合,要保证键的唯一性。
Map集合的常见方法:
1.增加
put()
putAll()
2.删除
remove()
clear()
3.判断
isContains(key)
isContains(key)
isEmpty
4获取
get(key)
size()
values()
keySet()// 获取所有键
EntrySet()//获取映射关系
Map子类
--HashTable 数据结构哈希表不允许空键值 并发 效率低
--HashMap 数据结构哈希表 允许空键值 效率高 不并发
--TreeMap 底层数据结构是二叉树,不并发,可以适用于对键排序的情况
注意:如果Map集合添加的两个元素键一样,会存在覆盖现象(put方法打印的结果为上一次的值)
我们在碰到实际问题的时候,首先要对实际的问题进行建模
比如:一个学校,有多间教室,一个教室有多个学生
大map嵌套小map(解决现实中的一对多的问题)
1 import java.util.*; import java.util.*; 2 class MapTest4 3 { 4 public static void main(String[] args) 5 { 6 HashMap<String,HashMap<String,Integer>> fjsd=new HashMap<String,HashMap<String,Integer>>(); 7 HashMap<String,Integer> xueYuan1=new HashMap<String,Integer>(); 8 HashMap<String,Integer> xueYuan2=new HashMap<String,Integer>(); 9 fjsd.put("xueyuan1",xueYuan1);//集合进行想关联 10 fjsd.put("xueyuan2",xueYuan2); 11 //添加学生映射关系 12 xueYuan2.put("zhangsan",18); 13 xueYuan2.put("lisi",18); 14 xueYuan1.put("wangwu",18); 15 xueYuan1.put("lisi",19); 16 xueYuan1.put("zhangsanhahah",20); 17 //先取大集合的value 18 Set<Map.Entry<String,HashMap<String,Integer>>> entrymap=fjsd.entrySet(); 19 for(Iterator<Map.Entry<String,HashMap<String,Integer>>> it=entrymap.iterator();it.hasNext();) 20 { 21 Map.Entry<String,HashMap<String,Integer>> me=it.next(); 22 String key=me.getKey(); 23 HashMap<String,Integer> value=me.getValue(); 24 System.out.println(key); 25 method(value); 26 27 } 28 29 } 30 public static void method(HashMap<String,Integer> hm) 31 { 32 Set<Map.Entry<String,Integer>> szgx=hm.entrySet(); 33 for(Iterator<Map.Entry<String,Integer>>it=szgx.iterator();it.hasNext();) 34 { 35 Map.Entry<String,Integer> mpa=it.next(); 36 String name=mpa.getKey(); 37 Integer age=mpa.getValue(); 38 System.out.println(name+"...."+age); 39 } 40 41 } 42 }
原文:http://www.cnblogs.com/theones2015/p/5090597.html