17-Map集合、集合练习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Map集合、集合练习

1.Map集合

1.1.Map集合介绍

Collection集合的特点:

集合中存储的所有元素都是单一元素,元素和元素之间没有必然的关系。因此我们把Collection集合也称为单列集合。

Map集合:

Map集合中保存的是一组(一对)数据。数据之间存在着一定的对应关系。Map集合就可以将数据的对应关系维护起来。当这样的数据存储在Map集合中,我们取出的时候,就可以根据这种对应关系获取到其中这组数据。

public interface Map

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

Map集合中的key是唯一的。每个key都有一个value值和其一一对应。

1.2.Map集合中的方法

1.2.1.添加方法

通过演示Map接口中的Map方法,发现put方法可以将指定的一组数据保存到集合中。

但是put方法有返回值:

如果调用put方法的时候,在保存的key和value值时,key在集合中不存在,这时相当于给集合中保存了一组新的数据。这时put方法得到的null。如果保存的这组数据中的key在集合中已经存在,这时会用当前的value值覆盖掉key对应的原来的value值,并返回被覆盖的那个value值。

总结:put方法可以将一组对象保存到Map中,返回的当前key对应的原始的value值。如果key是第一次出现返回的null。如果不是第一次,就会修改原始的value值。返回原来的value值

1.2.2.删除方法

根据指定的key,删除key和value这组数据,返回key对应的value值。

1.2.3.获取方法

根据指定的key获取对应的value值。如果给出的key在集合中没有,返回null。

1.2.4.判断方法

1.3.Map集合的遍历

1.3.1.Map集合遍历介绍

Map集合中保存的key-value一组数据。它们不能直接使用Iterator进行遍历。如果需要对Map集合进行遍历,这时必须先将Map集合转成Collection下的某个集合容器,然后再使用Iterator进行遍历。

Map集合的遍历有两种方式:

1、获取Map中的所有key,然后将这些key保存到Set集合中。这时就可以使用Iterator进行遍历,进

而就能得到每个的单独的key值,再使用Map中的get(key)方法得到key对应的value值。

2、获取到Map中的key和value这组数据,再封装成一个新的对象。

1.3.

2.keySet遍历

1.3.3.entrySet遍历

就业班中学习JavaWEB中的JSP中的JSTL技术时,其中有foreach的标签,遍历Map集合的时候,使用的entrySet。

1.3.4.values方法

获取到的Map集合中的所有value值组成的Collection集合。

1.4.HashMap演示

基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。(除了非同步和允许使用 null 之外,HashMap类与Hashtable大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

HashMap是Map接口的实现类,它的底层使用的哈希表。哈希表作用在HashMap集合的key上。

当使用自定义对象作为HashMap集合的key值时,这个自定义对象所属的类需要复写Object类中的hashCode和equals方法。

1.5.TreeMap演示

基于红黑树(Red-Black tree)的NavigableMap实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。

TreeMap的底层是二叉树结构。二叉树作用在集合的key上。TreeMap集合可以对保存在其中的元素进行排序。

如果将对象保存在TreeMap集合中,key上的这个对象应该具备比较的功能,key上的对象所属的类应该实现Comparable接口。或者是在创建TreeMap的时候,传递一个Comparator对象。

1.6.Map练习:

1.7.Hashtable演示

此类实现一个哈希表,该哈希表将键映射到相应的值。任何非null对象都可以用作键或值。

Hashtable集合它属于Map集合,但是是JDK1.0时期的,底层是哈希表,和HashMap功能一致。它是安全的。

2.工具类介绍

工具类:在JDK中提供大量的类。但是这些类都有对用的功能。可是某些的功能并不能满足实际的所有需求,于是针对这些类有提供的其他的类,处于辅助其他类的这些类被称为工具类。

JDK中的工具类一般都以s结尾。并且工具类中的所有方法全部是静态的。

2.1.Collections工具类

此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他容。

Collections:中的方法都是静态的,可以操作集合。

反转List集合中的元素。

反转比较器。

结论:在使用集合的时候,如果发现需要使用集合的某个功能,但是自身没有这时就需要考虑使用Collections 中的方法。

2.2.Arrays工具类

Arrays工具类中提供的大量可以操作数组的方法(折半查找、复制、排序、比较等)。

asList:它的功能是将一个数组转成List集合。目的是希望通过使用集合的方法来操作数组。

相关文档
最新文档