关闭

黑马程序员——java基础---集合(第16天)

标签: 黑马程序员java
165人阅读 评论(0) 收藏 举报
分类:

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流-----

Map集合   

一、Map概述 

Map集合存储键值对。一对一对的存储。键不可以重复,值可以被覆盖。

       |--Hashtable:  底层是哈希表数据结构,不可以存入nullnull。该集合是线程同步的。jdk1.0.效率低(比较规则是hashCode()和equals())。

       |--HashMap:底层是哈希表数据结构,允许使用 null值和 null ,该集合是不同步的。将hashtable替代,jdk1.2.效率高(比较规则是hashCode()和equals())。

       |--TreeMap: 底层是二叉树数据结构。线程不同步。可以用于给map集合中的进行排序(排序时的方法和TreeSet一样,即:实现comparablecomparator两个接口即可)

其实Set底层就是使用了Map集合。

二、Map<K,V>常用的公共功能

1,添加

V put(K key, V value)  添加时,如果出现相同的键。那么后添加的值会覆盖原有键的对应值。并且put方法会返回被覆盖的值。

void putAll(Map<?extends K,? extends V> m)  从指定映射中将所有映射关系复制到此映射中

2,删除

void clear()  清空集合

V remove(Object key)  方法会删除指定元素并返回被删除的值。

3,判断

boolean containsValue(Objectvalue)  若包含此值,则返回true。

boolean containsKey(Objectkey)     若包含此键,则返回true

boolean isEmpty()                 若包含键和值,则返回 true。

4,获取

V get(Object key)               返回指定键所映射的值,不存在返回NULL,

Collection<V> values()           返回此映射中包含的所有的值。

Set<Map.Entry<K,V>> entrySet()  返回此映射中包含的映射关系的Set 视图。               

Set <K> keySet()                返回此映射中包含的所有键并存入Set集合中。

三、 取出map集合元素的两种方式

1、Set<k> keySet

将map集合中所有的键存入到Set集合。因为set具备迭代器,可以用迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。

Map集合的取出原理:将map集合转成set集合。再通过迭代器取出。

1.1、keySet()代码示例


2、Set<Map.Entry<k,v>>entrySet

先将map集合中的映射关系转换成Map.Entry数据类型存入到set集合中;

再利用set迭代器遍历set集合中的元素,

通过Map.Entry中的特有方法getKey()和getValue()取出所有的键和值。

   2.1、entrySet()代码示例


Map扩展练习:现实生活中一种事物往往有多重映射关系 ,例如一个学校有好几个年级,一个年级有好几个班,一个班有好多学生。

练习:一个学校有两个班,基础班和就业班;每个班级有两名同学,每名同学还有自己的名字和年龄 。

代码示例:




运行结果为:


小知识点:Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口。

   代码示例:


------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流-----



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3338次
    • 积分:235
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论