------- android培训、java培训、期待与您交流! ----------
一.集合Map概述
Map集合和其他集合不同之处在于,它存的一对映射关系
java.util
接口Map<k,v>
k:是key键
v:是value是值
map接口的子类有-------Hashtable
--------HahsMap
---------TreeMap
1.添加put(k,v),会返回键对应原来的值
putAll(Map<?extends k.?extends v> m)将所有映射关系复制到此映射中
2.删除
void clear()从此映射中删除所有映射关系
3.boolean containsKey(object key)如果此映射中包含指定键的映射关系,返回true
boolean containsValue(Object value)如果此映射将一个或多个键映射到指定的值。则返回true
boolean isEmpty()如果此映射未包含键--值映射关系,则返回true
4.获取
V get(Object key)返回键的值,不存在返回null
int size() 获取关系对数
Collection<v> values() 返回此映射中包含的值的collection视图
Set<Map.Entry<k,v>> entrySet() 返回此映射中包含映射关系的Set视图
Set<k> keySet() 返回键的set视图
二.集合的特点
Hashtable------哈希表,不能存入null键和值 线程同步 jdk1.0
HashMap ------哈希表,可以存null,线程不同步,无序的
TreeMap------二叉树,线程不同步,可以给集合中的键进行排序,主要指的是取出有序,不是存储有序
Map集合和set集合很像,其实底层用了set集合
三Map集合的取出方法
1.Map---keySet
步骤一.将Map中所有的key存入到set集合中,用迭代器取出
步骤二.用get方法获取每个键对应的值
取出原理:将Map集合转成Set集合,再用迭代器取出
1.Set<String> KeySet=map.KeySet()//把所有的key取到set集合中
2.构造集合的迭代器
Iterator it=KeySet.iterator();
3.循环取出key,然后取出value
String key=it.next();
String value=map.get(key);
2.第二种取出方式Map---entrySet
将映射关系存入set集合中,数据类型是Map.entry
步骤一.存入set中映射关系
Set<Map.Entry<String,String>> entrySet=map.entrySet();
步骤二构造迭代器
Iterator<Map.Entry<String,String>> it=map.iterator();
步骤三循环取出
Map.Entry<String,String> me=it.next();
String key=me.getKey();
String value=me.getValue();
四Map集合的扩展
Map的扩展 class { public static void main(String[] args) { HashMap<String,hashMap<String,String>> czbk=new HashMap<String,hashMap<String,String>>(); HashMap<String,String> yure=new HashMap<String,String>(); HashMap<String,String> jiuye=new HashMap<String,String>(); czbk.put("yureban",yure); czbk.put("jiuyebanban",jiuye); jiuye.put("",""); jiuye.put("",""); yure.put("".""); yure.put("".""); Iterator<String> it=czbk.keySet().iterator(); while(it.hasNext()) { String roomName=it.next(); HashMap<String,String> room=czbk.get(roomName); getStudentInfo(room); } } public stativ void getStudentInfo(HashMap<String,String> roomMap) { Set<String> keySet=roomMap.keySet(); Iterator<String> it=keySet.iterator(); while(it.hasNext()) { String id=it.next(); String name=roomMap.get(id); sop(id+name); } } } /////////////////////////////////////////////////////////////////////////////////// Map扩展2 class Student { private String id; [rivate String name; Student(String id,String name) { this.id=id; this.name=name; } public String toString() { return id+name; } } class Demo { public static void dm() { HashMap<String,List<Student>> czbk=new HashMap<String,List<Student>>() List<Student> yure=new Arraylist<Student>(); List<Student> jiuye=new Arraylist<Student>(); czbk.put("yureban",reyu); czbk.put("jiuyeban",jiuye); reyu.add(new Student("01","zhangsan")); reyu.add(new Student("01","zhangsan")) jiuye.add(new Student("01","zhangsan")) jiuye.add(new Student("01","zhangsan")); Iterator<String> it=czbk.keySet().iterator(); while(it.hasNext()) { String roomName=it.next(); List<Student> room=czbk.get(roomName); getinfo(room); } } public static void getinfo(List<Student> list) { Iterator<Student> it=list.iterator(); while(it.hasNext()) { Student s=it.next(); sop(s); } } public static void main(String[] args) { dm(); } }}