JAVA集合框架中常用的集合及特点适用场景、实现原理

动态 未结 置顶 精帖
用户
悬赏:60飞吻

JAVA集合框架中常用的集合及特点(适用场景、实现原理)

JDK提供了大量优秀的集合实现供开发者使用,合格的程序员必须要能够通过功能场景和性能需求选用最合适的集合,这就要求开发者必须熟悉Java的常用集合类。本文将就Java Collections Framework中常用的集合及其特点、适用场景、实现原理进行介绍,供学习者参考。当然,要真正深入理解Java的集合实现,还是要推荐去阅读JDK的源码。

Java提供的众多集合类由两大接口衍生而来:Collection接口和Map接口

Collection接口

Collection接口定义了一个包含一批对象的集合。接口的主要方法包括:

  • size() – 集合内的对象数量
  • add(E)/addAll(Collection) – 向集合内添加单个/批量对象
  • remove(Object)/removeAll(Collection) – 从集合内删除单个/批量对象
  • contains(Object)/containsAll(Collection) – 判断集合中是否存在某个/某些对象
  • toArray() – 返回包含集合内所有对象的数组

Map接口

Map接口在Collection的基础上,为其中的每个对象指定了一个key,并使用Entry保存每个key-value对,以实现通过key快速定位到对象(value)。Map接口的主要方法包括:

  • size() – 集合内的对象数量
  • put(K,V)/putAll(Map) – 向Map内添加单个/批量对象
  • get(K) – 返回Key对应的对象
  • remove(K) – 删除Key对应的对象
  • keySet() – 返回包含Map中所有key的Set
  • values() – 返回包含Map中所有value的Collection
  • entrySet() – 返回包含Map中所有key-value对的EntrySet
  • containsKey(K)/containsValue(V) – 判断Map中是否存在指定key/value

在了解了Collection和Map两大接口之后,我们再来看一下这两个接口衍生出来的常用集合类:

List类集合

List接口继承自Collection,用于定义以列表形式存储的集合,List接口为集合中的每个对象分配了一个索引(index),标记该对象在List中的位置,并可以通过index定位到指定位置的对象。

List在Collection基础上增加的主要方法包括:

  • get(int) – 返回指定index位置上的对象
  • add(E)/add(int, E) – 在List末尾/指定index位置上插入一个对象
  • set(int, E) – 替换置于List指定index位置上的对象
  • indexOf(Object) – 返回指定对象在List中的index位置
  • subList(int,int) – 返回指定起始index到终止index的子List对象

List接口的常用实现类:

ArrayList

ArrayList基于数组来实现集合的功能,其内部维护了一个可变长的对象数组,集合内所有对象存储于这个数组中,并实现该数

回帖
  • 消灭零回复
[打开调试信息]