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

    一、概念

    用于存储数据的容器,集合区别于数组,集合主要用于存放对象,并且长度可变,而数组一旦初始化,其长度不能发生改变,灵活性较差。

    二、集合关系图谱

     

    解释说明:

    1. 集合类位于java.util包中,集合类主要有两个父级接口Collection和Map派生,二者的顶级父类均为Object,两个父级接口派生出了一些接口和实现类。

    2. 图谱中共有6个接口,由短虚线表示,是集合框架的基础。

    3. 图谱中共有5个抽象类,由长虚线表示,可扩展为自定义集合类。

    4. 实现类:8个实现类(实线表示),对接口的具体实现。

    三、细节分析

     

    1、Collection接口

    其是一个高度抽象出来的集合接口,它包含的集合的基本操作和属性,主要包括List和Set两大分支。

    · List是一个有序的队列,每个元素都有其特有的索引,且元素的索引值从0开始。List的实现类包含ArrayList、LinkedList、Vector、Stack。

    · Set是一个无序的元素集合,且内部不允许有重复元素。Set的实现类有HashSet和TreeSet,HashSet依赖于HashMap,它实际上是通过HashMap实现的;TreeSet依赖于TreeMap,它实际上是通过TreeMap实现的。

    2、Map是一个映射接口,保存为key-value键值对。AbstractMap是个抽象类,它实现了Map接口中的大部分API。而HashMap,TreeMap,WeakHashMap都是继承于AbstractMap。Hashtable虽然继承于Dictionary,但它实现了Map接口。

    3、Iterator迭代器为遍历集合的工具类,Collection依赖于Iterator,Collection实现类都需要实现iterator()函数,返回Iterator对象,ListIterator是为专门遍历List集合而存在。 

     

     

    4、Enumeration与Iterator类似,其作用也是为了遍历集合。但是其功能要比Iterator少很多,

    只能在Hashtable, Vector, Stack中使用。

    5、Arrays和Collections为操作集合的两个工具类。

     

  • 相关阅读:
    svn git 共存
    如何写软件设计文档
    spring boot requestbody string to date
    asp.net core 1.1 publish to a linux
    asp.net core 1.1 entityframework mysql
    [FPGA]記錄一些不錯的網站推薦給大家參考。
    [FPGA][DE0] Qsys 加入 FLASH 記憶體 方法及步驟
    [FPGA][Nios][DP83848] 網路開發筆記-軟體篇(1)
    [Nios][UART] 使用UART 的一些問題?
    [Nios][Eclipse] find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer
  • 原文地址:https://www.cnblogs.com/wuhao-0206/p/13059792.html
Copyright © 2011-2022 走看看