zoukankan      html  css  js  c++  java
  • 集合框架

    集合框架(collections framework)

    首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能)。Java中的集合框架定义了一套规范,用来表示、操作集合,使具体操作与实现细节解耦。

    其实说白了,可以把一个集合看成一个微型数据库,操作不外乎“增删改查”四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度弄清楚了,基本上就可以说掌握这个类了。

    两大基类Collection与Map

    在集合框架的类继承体系中,最顶层有两个接口:

    • Collection表示一组纯数据
    • Map表示一组key-value对

    一般继承自CollectionMap的集合类,会提供两个“标准”的构造函数:

    • 没有参数的构造函数,创建一个空的集合类
    • 有一个类型与基类(CollectionMap)相同的构造函数,创建一个与给定参数具有相同元素的新集合类

    因为接口中不能包含构造函数,所以上面这两个构造函数的约定并不是强制性的,但是在目前的集合框架中,所有继承自CollectionMap的子类都遵循这一约定。

    Collection

    java-collection-hierarchyjava-collection-hierarchy

    如上图所示,Collection类主要有三个接口:

    • Set表示不允许有重复元素的集合(A collection that contains no duplicate elements)
    • List表示允许有重复元素的集合(An ordered collection (also known as a sequence))

    Map

    MapClassHierarchyMapClassHierarchy

    Map并不是一个真正意义上的集合(are not true collections),但是这个接口提供了三种“集合视角”(collection views ),使得可以像操作集合一样操作它们,具体如下:

    • 把map的内容看作key的集合(map’s contents to be viewed as a set of keys)
    • 把map的内容看作value的集合(map’s contents to be viewed as a collection of values)
    • 把map的内容看作key-value映射的集合(map’s contents to be viewed as a set of key-value mappings)

    集合的实现(Collection Implementations)

    实现集合接口的类一般遵循<实现方式>+<接口>的命名方式,通用的集合实现类如下表:

    InterfaceHash TableResizable ArrayBalanced Tree  
    Set HashSet   TreeSet    
    List   ArrayList      
    Deque   ArrayDeque      
    Map HashMap   TreeMap    
  • 相关阅读:
    40 宾语从句的连词
    unar解压rar,zip等文件
    Disable beep in WSL terminal on Windows 10 [closed]
    Collins COBUILD Advanced Learner’s Dictionary (Collins COBUILD Dictionaries for Learners)
    中小学语文示范诵读库
    自己打印标准五笔字型教材(86)
    赵元任《施氏食狮史》
    西班牙语学习资源
    为什么“能”?为什么“行”?为什么“好”?答案在这里!
    社会主义好
  • 原文地址:https://www.cnblogs.com/mms912/p/8900691.html
Copyright © 2011-2022 走看看