集合框架:Java里的Collection和Map
SryYa Three

集合框架

Java集合框架(Java Collection Framework,JCF) 是一套用于存储和操作一组对象的统一容器体系

两个体系:

  • Collection(单列集合)
  • Map(双列集合)

往下细分,Collection有List和Set。Map有HashMap,LinkedHashMap等等实现。下面我们来深入了解Java的集合框架。


学习框架

image

image

在Java中,常见的集合类就有十几个,每个类又有自己具体的各种方法,庞大的体量让我们根本就无法记住这些集合。如果我们想要掌握所有的集合,我们应该学习集合框架,学习顶层设计,只要框架学会了,自然就一通百通了。


Collection体系

Collection接口:

java.util中有一个Collection接口,是集合层级中的根接口。JDK 不直接实现该接口:它提供更具体的子接口实现,如Set和List。

所以,如果我们想自己写一个集合实现Collection接口该怎么做呢?

接口实现:

public class MyList implements Collection

让我们看看Collection接口要求我们必须重写哪些方法:

image

我们来具体分析每个方法。


int size()

返回该集合中的元素数量。如果该集合中的元素大于Integer.MAX_VALUE,则返回Integer.MAX_VALUE

boolean isEmpty()

如果该集合不包含任何元素,则返回true

boolean contains(Object o)

如果该集合包含指定元素(元素个数>=1),则返回true

Iterator iterator()

返回该集合元素的迭代器。

Object[] toArray()

返回包含该集合中所有元素的数组。如果该集合保证元素的顺序,该方法必须以相同顺序返回元素。

boolean add(Object o)

向集合添加一个元素,如果添加成功则返回true,添加失败(如集合不允许重复元素,不允许null)则返回false

boolean remove(Object o)

如果该集合存在指定元素的单个实例,则从该集合中移除。

void clear()

移除集合所有元素

剩余后缀为All的方法只是将范围扩大为整个集合,在此不再赘述。

可以看出,Collection集合中的通用方法就是上述的这些。

Collection接口定义了集合应该实现的方法,剩下的只是用不同的数据结构去适配不同场景下的具体需求了。


Map体系

既然已经知道了Collection体系的集合,那么Map体系对我们来说也不是很难了。

用同样的方法,我们来看看Map集合的通用方法。

![Map接口](../images/Map要实现的方法 .png)

下面我们分析Map特有的方法:

V get(Object key)

返回指定键映射的值,如果不包含指定键的映射则返回null。

V put(K key, V value)

将指定值与指定键关联。如果已经包含键的映射,旧值将被指定的值替换。

SetkeySet()

返回该Map中包含的所有键的一个Set视图。

Set<Map.Entry<K, V>> entrySet()

返回该Map中包含的所有键值对的一个Set视图。

到此,我们也了解完了Map的通用方法,剩下的就是各个不同数据结构实现的Map了。


总结

本文我们讲述了CollectionMap两大集合框架的通用方法。掌握了这些通用方法,以后当我们使用到某个具体的List或Map时也就能轻松驾驭而不是被各种实现绕晕了。

由 Hexo 驱动 & 主题 Keep
总字数 28.1k 访客数 访问量