-------
android培训、
java培训、期待与您交流!---------
-------
android培训、
java培训、期待与您交流!---------
map集合
Map集合:该集合存储键值对,保证元素的唯一性
map集合的常用方法
1.添加
put(K key,V value)
put(Map<? extends K,? extends V> m)
2.删除
clear()
remove(Object key)
3.判断
containsKey(Object Value)
containsKey(object key)
isEmpty()
4.获取
get(object key)
size()
values()
entrySet()
keySet()
Map
|---Hashtable
底层是哈希表数据结构,不可以存入null键值,该集合是线程同步jdk1.0,效率低
|---HashMap
底层是哈希表数据结构,允许使用null键值,该集合是不同步的jdk1.2效率高
|---TreeMap
底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序
和Set很像,其实Set底层就是使用了Map集合
实例1
<span style="font-size:18px;">import java.util.*;
class MapDemo
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
Map<Integer,String> map=new HashMap<Integer,String>();//创建key为Integer类型,value为String类型的集合对象
//添加元素
map.put(01,"zhangsan");
map.put(02,"huanglei");
map.put(03,"zhaojun");
map.put(04,"heshen");
sop("containsKey:"+map.containsKey(022));//返回false
sop("remove:"+map.remove(011));//返回null
sop("get:"+map.get(04));//返回heshen
map.put(05,null);
sop("get:"+map.get(05));//返回null,可以判断元素是否存在
//获取集合中所有的值
Collection<String>coll=map.values();
sop("coll..:"+coll);
sop("map..:"+map);
}
}</span>
map集合的两种取出方式
|---set<k> keySet()
将map中所有的键存入到Set集合。因为set具备迭代器
所有可以迭代方法取出的键,在根据get方法,获取每个键对应的值
Map集合取出的原理:将map集合转成set集合,再通过迭代器取出
|---Set<Map.entry<k,v>> entrySet()
将map集合中的映射关系存入到set集合中,而这个关系的数据类型就是:Map.Entry()
<span style="font-size:18px;">import java.util.*;
class MapDemo1
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
Map<Integer,String> map=new HashMap<Integer,String>();//</span><span style="font-family: 微软雅黑;"><span style="font-size:14px;">创建key为Integer类型,value为String类型的集合对象</span></span><span style="font-size:18px;">
</span><span style="font-size:18px;">
map.put(1,"zhangsan");
map.put(2,"shanshan");
map.put(3,"liangmei");
map.put(4,"lili");
//将map集合中的映射关系取出,存入到Set集合中 : entrySet()
Set<Map.Entry<Integer,String>> entrySet=map.entrySet();
Iterator<Map.Entry<Integer,String>> it=entrySet.iterator();//创建一个迭代器将所有集合取出
while(it.hasNext())
{
Map.Entry<Integer,String> me=it.next();
Integer key =me.getKey();
String value=me.getValue();
sop(key+".."+value);
}
/*
//先获取map集合的所有键的Set集合,keySet()
Set<Integer>keyset=map.keySet();
//有了Set集合,就可以获取其迭代器
Iterator<Integer> it=keyset.iterator();
while(it.hasNext())
{
Integer key=it.next();
//有集合的键,就可以通过集合的get方法获取其对应的值
String value =map.get(key);
sop("key:"+key+"..value:"+value);
}
*/
}
}
/*
Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口
interface Map
{
public static interface Entry
{
public abstract Object getKey();
public abstract Object getValue();
}
}
class HashMap implements Map
{
class Demo implements MaP.Entry
{
public Object getKey(){}
public Object getValue(){}
}
}*/</span>