Java集合框架概述

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

  • 集合框架体系
    集合框架总体上分为了两大块:Collection和Map,jdk为我们提供了这两个基本的接口,所有的集合实现类都基于它们。
  • Collection:它提供了对集合对象进行基本操作的通用接口方法
    先来看一下jdk源码中的介绍;
 * The root interface in the <i>collection hierarchy</i>.  A collection
 * represents a group of objects, known as its <i>elements</i>.  Some
 * collections allow duplicate elements and others do not.  Some are ordered
 * and others unordered.  The JDK does not provide any <i>direct</i>
 * implementations of this interface: it provides implementations of more
 * specific subinterfaces like <tt>Set</tt> and <tt>List</tt>.  This interface
 * is typically used to pass collections around and manipulate them where
 * maximum generality is desired.
 *
 * <p><i>Bags</i> or <i>multisets</i> (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<E> spliterator() {
        return Spliterators.spliterator(this, 0);
    }
  default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }
  default Stream<E> 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框架。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容