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

      Java中的集合从类的继承和接口的实现结构来说,可以分为两大类:

      1 继承自Collection接口,包含List、Set和Queue等接口和实现类。

      2 继承自Map接口,主要包含哈希表相关的集合类。

      第一类

      Collection接口继承和实现结构图如下:

      图中的绿色的虚线代表实现,绿色实线代表接口之间的继承,蓝色实线代表类之间的继承,下同。

      List

      常用的是ArrayList和LinkedList。ArrayList通过数组实现,随机访问比较快,增删操作比较慢。而LinkedList通过链表实现,增删操作比较快,随机访问比较慢。两者都是非线程安全的。

      Queue

      LinkedList实现了Deque接口,所以LinkedList具有双端队列的功能。PriorityQueue内部数据结构是堆,每次出队列的元素总是当前队列中最大值(大顶堆)或是最小值(小顶堆)。

      Set

      Set与List的主要区别是Set不允许元素重复,而List允许元素重复。HashSet和LinkedHashSet的区别在于后者保证元素插入集合的元素顺序与输出顺序保持一致。而它们与TreeSet的区别在于TreeSet按照Comparator进行排序,默认情况下按照字符的自然顺序升序排列。

      

      第二类

      Map接口继承和实现结构图如下:

      Map类型的集合最大的优点在于其查找效率比较高,理想情况下可以实现O(1)的时间复杂度。Map中最常用的是HashMap。LinkedHashMap与HashMap的区别在于前者能够保证插入集合的元素顺序与输出顺序一致。这两者与TreeMap的区别在于TreeMap根据键值进行排序,底层的实现也有本质的区别,如HashMap底层是一个哈希表,而TreeMap的底层是一棵树。在多线程环境下,通常使用ConcurrentHashMap,因为Hashtable效率比较低。

      参考资料

      Java集合之整体结构

  • 相关阅读:
    postman的本地安装教程
    06-Hibernate中的持久化类
    05-Hibernate的核心API及使用c3p0连接池
    04-Hibernate的常见配置
    03-Hibernate的入门
    02-Hibernate的日志记录
    01-Hibernate框架的概述
    15-struts2 提供的异常处理
    14-struts2的表单标签
    13-struts2中json插件使用
  • 原文地址:https://www.cnblogs.com/WJQ2017/p/8278389.html
Copyright © 2011-2022 走看看