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    
  • 相关阅读:
    渐变的圆
    画一组同心圆
    画五角星
    照猫画虎求阶乘
    字符串逆序输出
    格式化输出
    计算矩形面积
    字符串反码A
    快乐数字
    Maratona Brasileira de Popcorn( 二分答案+暴力 )
  • 原文地址:https://www.cnblogs.com/mms912/p/8900691.html
Copyright © 2011-2022 走看看