黑马程序员-集合篇(3)

来源:互联网 发布:linux 服务器鸟哥 编辑:程序博客网 时间:2024/06/05 03:28
------- 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));//返回falsesop("remove:"+map.remove(011));//返回nullsop("get:"+map.get(04));//返回heshenmap.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>




------- android培训、java培训、期待与您交流!---------
0 0
原创粉丝点击