Java集合框架概述

集合框架使我们开发应用时不可缺少的工具,首先我们要明白,集合是什么?
集合代表了一组具有共同属性的对象,集合框架则定义了一套规范,用来表示、操作集合,使具体操作与实现细节解耦,为我们提供了囊括全部集合接口、实现和算法。

  • 集合框架体系
    集合框架总体上分为了两大块:Collection和Map,jdk为我们提供了这两个基本的接口,所有的集合实现类都基于它们。
  • Collection:它提供了对集合对象进行基本操作的通用接口方法
    先来看一下jdk源码中的介绍;
 * The root interface in the collection hierarchy.  A collection
 * represents a group of objects, known as its elements.  Some
 * collections allow duplicate elements and others do not.  Some are ordered
 * and others unordered.  The JDK does not provide any direct
 * implementations of this interface: it provides implementations of more
 * specific subinterfaces like Set and List.  This interface
 * is typically used to pass collections around and manipulate them where
 * maximum generality is desired.
 *
 * 

Bags or multisets (unordered collections that may contain * duplicate elements) should implement this interface directly

集合框架的根接口,集合是一组对象的表示(对象叫做元素),一些集合实现允许重复元素,一些不允许,一些有序......JDK没有提供这个接口的任何直接实现,而是提供了更多细节性的接口(也就是具体化的接口,例如List),这个接口传递集合类给Collections(集合操作的工具类),用来为各种具体的集合提供最大化的统一操作方式。

  • Collections:一个包装类(工具类/帮助类)。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,用于对集合中元素进行排序、搜索以及线程安全等各种操作,服务于Java的Collection框架。
    简而言之:假设集合是一个微型数据库(不同类型),Collection则为我们提供CRUD的通用接口方法
    我们来看一张Collection的简易体系图
    图片.png
  • Collection接口主要有三个子接口:
    • List:List表示允许有重复元素的集合(An ordered collection (also known as a sequence))
    • Set:Set表示不允许有重复元素的集合(A collection that contains no duplicate elements)
    • Queue:Queue主要用于存储数据,而不是处理数据。(A collection designed for holding elements prior to processing.)
  • Java8新增接口方法:(在后续文章中会详细介绍)
  default Spliterator spliterator() {
        return Spliterators.spliterator(this, 0);
    }
  default Stream stream() {
        return StreamSupport.stream(spliterator(), false);
    }
  default Stream parallelStream() {
        return StreamSupport.stream(spliterator(), true);
  • Map:表示一组key-value对


    图片.png

Map并不是一个真正意义上的集合(are not true collections),但是这个接口提供了三种“集合视角”(collection views ),使得可以像操作集合一样操作它们,具体如下:
- key的集合: map's contents to be viewed as a set of keys
- value的集合:map’s contents to be viewed as a collection of value
- key-value映射(Entry)的集合:map’s contents to be viewed as a set of key-value mappings

  • Collections : 集合操作类
    它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,用于对集合中元素进行排序、搜索以及线程安全等各种操作,服务于Java的Collection框架。

你可能感兴趣的:(Java集合框架概述)