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

原创 2015年07月06日 20:08:27

------<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>、期待与您交流-----



黑马程序员_Java第16天知识总结_Map集合_entrySet_keySet

------- android培训、java培训、期待与您交流! ---------- Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。 1,添加。 put(K key, V...
  • v191211
  • v191211
  • 2013年05月20日 05:19
  • 345

黑马程序员——Java基础之集合框架

集合类 * 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式 * 数组和集合类同是容器,有何不同? 数组虽...
  • zdh_61
  • zdh_61
  • 2015年05月18日 00:30
  • 481

黑马程序员——Java基础---集合(第18天 )

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、System静态类 System:类中的方法和属性都是静态的。 static Prin...

黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换

------- android培训、java培训、期待与您交流! ----------   集合框架的工具类:        Collections : 集合框架的工具类。里面定义的都是静态...

黑马程序员——Java基础---集合类(下)

------- android培训、java培训、期待与您交流! ---------- 集合类目录: 一、Set接口 1、Set接口概述 2、Set集合的特点 3、Set_存储自定义对象...

黑马程序员——java基础--集合(篇二)

一、Map 二、Collections   一、Map 该集合存储键值对。一对一对往里存。而且要保证键的唯一性。和Set很像。Set底层就是使用了Map集合。 什么使用map集合呢? 当数据之间存在这...

黑马程序员——JAVA基础之简述集合collection

------- android培训、java培训、期待与您交流! ----------   集合: 为什么出现集合类? •  面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作...

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

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流----- 一、Set Set:元素无序,不可以存放重复元素        |--HashSet:数据结构是哈希表...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——java基础---集合(第16天)
举报原因:
原因补充:

(最多只允许输入30个字)