------- 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();
}
}}