当前位置: 首页 > news >正文

教学网站建设/今天的新闻联播

教学网站建设,今天的新闻联播,什么是品牌网站建设,郑州做网站哪家便宜接口类图Java Collection由两套并行的接口组成,一套是Collection接口,一套是Map接口。如下图公共抽象类AbstractCollection要求派生类实现iterator()方法,AbstractCollection根据得到的Iterator实现所有可以支持的方法,比如remove…

接口类图

Java Collection由两套并行的接口组成,一套是Collection接口,一套是Map接口。如下图

3b6acce759278e4cc261acc5700fd034.png

351e0450f7934b273621f7e3ccb4a0f9.png

公共抽象类AbstractCollection

要求派生类实现iterator()方法,AbstractCollection根据得到的Iterator实现所有可以支持的方法,比如remove()、contains()、toArray()、toString()等。

当然,Map系列的类并不从AbstractCollection派生。

9682a0d624abf5af9d0f6906c9a41ea5.png

List实现

e42bb833b8464b2c1b5b0dd8f8c1a20f.png

AbstractList

要求子类实现get(int)和size()方法,AbstractList利用这两个模板方法,实现出完整的只读List。

ArrayList

利用Object[]实现的List。

AbstractSequentialList

利用ListIterator接口,实现get(index)、set(index)、remove(index)、add(index, value)等随机访问的方法。

LinkedList

单向链表,下面是链表中每个节点的定义:

privatestaticclassNode {

E item;

Node next;

Node prev;

}

Vector

线程安全的List,采用synchronized(this)进行加锁。内部采用Object[]实现。

Stack

对Vector进行的简单封装。

CopyOnWriteArrayList

注意此类直接从Object派生。

线程安全。每个add、set等修改操作,都会导致对内部数组进行全新复制。Iterator()函数返回的迭代器对象,包含了当前array的一个快照。因此,对CopyOnWriteArrayList对象的修改,不会影响已经生成的迭代器对象,只是迭代器对象看到的快照有可能是过时的。

Queue实现

ddfb50073393a9cd651e8d9b7a74e16d.png

ArrayDeque

用环形数组实现的Deque,自动增长数组大小。

不能接受null元素。

非线程安全。

AbstractQueue

抽象类。利用模板函数实现了几个功能,比如addAll()

ConcurrentLinkedQueue

线程安全。但这只是表示并发操作不会破坏内部结构,但是toArray()、迭代器、addAll()等操作不是原子的。

不能接受null元素。

用单向链表实现。

使用了非JDK类sun.misc.Unsafe。

PriorityQueue

优先队列,利用优先堆实现。

非线程安全。

加入的元素必须支持全排序。

不能接受null元素。

DelayQueue

实现的时候用到了PriorityQueue。

非线程安全。

支持Blocking操作。

可以用于连接超时自动移除、缓存超时自动移除等场景。

注意事项:假定DelayQueue中的元素类型为T,

1.        T.getDelay()应该返回超时值

2.        T必须可以全排序

3.        T最好是根据超时值进行全排序,并且全排序一旦排好,比较结果不应该随着Delay值变化而变化。

SynchronousQueue

线程安全。

不接收null元素。

特点是put和take函数必须同时执行,才能全部返回;任何一个单独执行只会导致等待。

PriorityBlockingQueue

带有Blocking功能的优先队列。

LinkedBlockingQueue

带有Blocking功能的Queue

用单向链表实现。

创建的时候可以指定容量,没有指定容量就是Integer.MaxValue;容量在创建后不能修改。

已满状态执行put会导致等待。

为空状态下执行take会导致等待。

ArrayBlockingQueue

带有Blocking功能的Queue

用Array实现。

创建的时候必须指定容量,并且创建后不能修改。

已满状态执行put会导致等待。

为空状态下执行take会导致等待。

Set实现

806b8020220015ee61ea4d40e2dc856d.png

AbstractSet

抽象基类,通过Iterator实现几个通用方法。

HashSet

内部包含了一个HashMap对象。

向HashSet中添加一个元素X,相当于向HashMap对象添加一个二元组。

非线程安全。

接收null元素。

LinkedHashSet

内部包含了一个LinkedHashMap对象。

非线程安全。

接收null元素。

采用Iterator迭代的时候,根据元素添加的顺序排序。

TreeSet

内部包含了一个TreeMap对象。

向TreeSet中添加一个元素X,相当于向TreeMap对象添加一个二元组。

非线程安全。

不接受null元素。

ConcurrentSkipListSet

内部包含了一个ConcurentSkipListMap。

线程安全。

不接收null元素。

CopyOnWriteArraySet

内部包含了一个CopyOnWriteArrayList做实际的数据存储,因此这实际上是一个Array。

Map实现

2615618c045fa01aefee15a766dceabc.png

AbstractMap

抽象类,利用entrySet()模板方法实现了一些通用方法。

HashMap

哈希表

Key和Value都可以为null。

非线程安全。

LinkedHashMap

从HashMap派生,整个哈希结构都是利用了HashMap来实现

每个插入的Value,都通过一个双向链表连接起来。

可以指定链表的顺序是按照插入时间排序、还是按照访问时间排序。如果是按照访问时间排序,每次访问都要调整链表。

TreeMap

基于红黑树实现的Map。

非线程安全。

ConcurrentHashTable

基于哈希表实现。

构造函数中可以指定并发程度,也就是预期有多少更新线程。

ConcurrentSkiptListMap

支持并发的跳跃表

IdentityHashMap

哈希表

内部采用==判断key的相等性。

EnumMap

接收Key为Enum类型的Map。

内部用数组来存储Value,即Value == this.Vals[Key.ordinal],效率高。

WeakHashMap

每个Key用WeakReference管理。当Key对象符合弱引用的回收条件时,就被回收。

Size()方法返回的是还没有被回收的Key对象的数量。

如果Key已经被回收,get方法放回null。

利用哈希表实现。

实现上,每个对应一个Entry,每个Entry都是WeakReference的派生类对象。该Entry对象也就是Key的WeakReference。

集合类的区分因素

1.        支持哪些操作接口

2.        内部实现的数据结构,及其相应的时空复杂度

3.        是否对插入元素的数量有限制

4.        是否支持插入null元素

5.        是否线程安全

6.        是否支持阻塞

http://www.lbrq.cn/news/767575.html

相关文章:

  • 南昌企业免费建站/营销策略方案
  • 个人备案网站做企业会怎样/竞价推广的企业
  • 在手机上怎么做微电影网站吗/重庆网站建设推广
  • asp网站图片不显示/seosem是指什么意思
  • 青海省建设厅报名网站/百度一下电脑版网页
  • 专业网站建设咨/株洲seo优化首选
  • 东莞网站建设设计公司/网络营销策划方案书范文
  • 浙江省城乡建设厅官方网站/网络营销推广的特点
  • 武昌手机网站/sem分析是什么
  • 网站建设的价值/网页设计培训
  • 企业网站一般用什么框架做/广东深圳龙华区
  • 网站建设属于应用软件吗/seo综合查询中的具体内容有哪些
  • 做网站多少分辨率就可以/免费招聘信息发布平台
  • 如何利用视频网站做推广/域名大全查询
  • 数据库和网站开发/策划网络营销方案
  • 佛山网站优化效果/青岛疫情最新情况
  • vps如何限制网站网速/抖音营销推广怎么做
  • 做柱状图好看的网站/企业关键词优化专业公司
  • 淘宝代运营公司一般怎么收费的/seo服务公司
  • 网站建设的大公司好/外链优化
  • 网站建设销售好做吗/推荐6个免费国外自媒体平台
  • 合肥专业做网站的公司哪家好/百度成都总部
  • 建设公司网站费用多少/如何做好企业推广
  • 秦皇岛网站建设多少钱/今日热搜榜排行榜
  • 太仓公司网站建设电话/全国疫情最新
  • 男女做那个那个的视频网站/如何查看百度指数
  • 网站建设申请理由/aso优化
  • 义乌市做网站/百度关键词快速优化
  • 杭州网站建设培训班/网络推广主要是做什么工作
  • 网站设置多少个关键词/百度平台官网
  • 希尔排序专栏
  • Hive 创建事务表的方法
  • SQL详细语法教程(一)--数据定义语言(DDL)
  • AI-调查研究-49-大数据调研报告 发展历程:从概念诞生到多元化生态1997-2025
  • Javase 之 字符串String类
  • MD5:理解MD5 / MD5核心特性 / MD5 在前端开发中的常见用途 / 在线生成MD5 / js-md5