最新要闻
- 天天看点:卡梅隆感染新冠 缺席洛杉矶首映式
- 想“白嫖”20万的私人飞机 推特被告了
- 【报资讯】短了5厘米照样强大 迷你SSD硬盘雄起 速度冲向5GB/s
- 全球聚焦:小米13、iPhone 14 Pro全角度对比:小米正面碾压式完胜 背面有争议
- 环球快消息!世界杯半决赛现场将播放两首中文歌:你肯定都听过
- 环球播报:硬刚小米13!moto X40核心配置官方全面揭晓
- 环球热头条丨男子帮摔倒大爷报警反被讹引热议:已和解 对方赔偿男子2000元误工费
- 环球即时:旗舰猛兽!小米万兆路由器明天首销:1799元
- 天天时讯:太强了!卢伟冰称小米13 Pro应该叫“小米13 Pro Ultra”
- 【速看料】《三体》动画爆火!两部真人版剧集明年开播:网飞、腾讯对标
- 环球热推荐:又一合资倒下?家喻户晓的斯柯达或将退出中国市场
- 环球聚焦:历史首次!英国女孩通过基因编辑治好白血病对抗癌症:生物工程壮举
- 【环球报资讯】伴娘穿露肩礼服肌肉健硕画面太美不敢看 网友:真金刚芭比
- IGN给RX 7900 XTX显卡打7分:AMD性价比绝对YES
- 一加显示器X27发布:2K 165Hz屏、65W PD输出
- 观天下!小米13深度体验:补上最后一块短板!冲击高端真的要成了?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球新资讯:【collection】4.java容器之LinkedList,Stack,CopyOnWriteArrayList
LinkedList
节点数据结构
/** * 泛型结构 * @param node */private static class Node {E item;// 双向链表,向前和向后Node next;Node prev;Node(Node prev, E element, Node next) {this.item = element;this.next = next;this.prev = prev;}}
add
结论:新节点是插入到原来index的前面,原来index以及以后的节点,整体后移一位
/** * Returns the (non-null) Node at the specified element index. * 这里索引用了二分的思想,但是不是二分的算法 * 首先区分index是否小于一般,如果是,那么从前往后找 * 如果大于一般,那么从后往前找 */Node node(int index) {// assert isElementIndex(index);if (index < (size >> 1)) {// 从first往后Node x = first;for (int i = 0; i < index; i++)x = x.next;return x;} else {// 从last往前Node x = last;for (int i = size - 1; i > index; i--)x = x.prev;return x;}}/** * Inserts element e before non-null Node succ. */void linkBefore(E e, Node succ) {// assert succ != null;final Node pred = succ.prev;final Node newNode = new Node<>(pred, e, succ);// 断开原来的前置连接线,并修改为新的succ.prev = newNode;if (pred == null) {first = newNode;} else {// 断开原来的后置,并更新pred.next = newNode;}size++;modCount++;}
reomove,removeFirst,remove(index)
remove默认移除首节点,于removefirst作用相同
/** * Unlinks non-null first node f. */private E unlinkFirst(Node f) {// assert f == first && f != null;final E element = f.item;final Node next = f.next;f.item = null;f.next = null; // help GCfirst = next;if (next == null)last = null;else {// 更新完first之后,这里只需要把next.prev对象设置为null即可next.prev = null;}size--;modCount++;return element;}/** * Unlinks non-null node x. */E unlink(Node x) {// assert x != null;final E element = x.item;final Node next = x.next;final Node prev = x.prev;// 前置节点为空,那么直接把first移动到nextif (prev == null) {first = next;} else {// 把前面节点的后置设置为下一个,跳过当前节点prev.next = next;x.prev = null;}// 如果next本来是空的,那么把last指针前移if (next == null) {last = prev;} else {// 不为空,那么把后面节点的前置指针跳过当前,设置前面一个节点next.prev = prev;x.next = null;}x.item = null;size--;modCount++;return element;}
remove(index)和 remove(Object)类似
【资料图】
但是remove(object)的意思是判断空和非空,因为空的无法进行equals比较,循环查找
另外remove(index)也是先根据node方法定位关联节点
get,indexof查找
get方法也是用node(index)定位,indexof方法:判断空和非空,因为空的无法进行equals比较,循环查找
参考
https://pdai.tech/md/java/collection/java-collection-LinkedList.html#queue-方法
Stack
栈的实现主要依赖的是vector
这里主要是push和pop操作
扩容参考arraylist
push就是类似add,但是这里的操作都加了synchronized关键字,所以stack是线程安全的
CopyOnWriteArrayList
add操作
public boolean add(E e) {// 加锁final ReentrantLock lock = this.lock;lock.lock();try {Object[] elements = getArray();int len = elements.length;// 先直接复制一个新的数组出来,并且直接把长度+1Object[] newElements = Arrays.copyOf(elements, len + 1);// 然后设置最后一个位置的节点newElements[len] = e;setArray(newElements);return true;} finally {lock.unlock();}}
扩容
这个结构的扩容方式很简单暴力
直接复制出来一份满足要求大小的数组
newElements = Arrays.copyOf(elements, len + 1);
get
没有加锁
private E get(Object[] a, int index) { return (E) a[index];}
总结:
数据一致性问题:CopyOnWrite容器只能保证数据的最终一致性,不能保证数据的实时一致性。
这句话的意思是在循环操作的过程中,这个get结果是不可知的,只能保证在set的时候没问题,然后所有数据add完毕之后的结果符合预期
内存占用问题:因为CopyOnWrite的写时复制机制,所以在进行写操作的时候,内存里会同时驻扎两个对象的内存,旧的对象和新写入的对象(注意:在复制的时候只是复制容器里的引用,只是在写的时候会创建新对象添加到新容器里,而旧容器的对象还在使用,所以有两份对象内存)
-
环球新资讯:【collection】4.java容器之LinkedList,Stack,CopyOnWriteArrayList
LinkedList节点数据结构 ***泛型结构*@param<E>node* privatestaticclassNode<E>{Eitem;
来源: 环球新资讯:【collection】4.java容器之LinkedList,Stack,CopyOnWriteArrayList
教你用JavaScript实现实时字符计数器
杭州联合银行 x 袋鼠云:打造智能标签体系,助力银行大零售业务转型
天天看点:卡梅隆感染新冠 缺席洛杉矶首映式
想“白嫖”20万的私人飞机 推特被告了
【报资讯】短了5厘米照样强大 迷你SSD硬盘雄起 速度冲向5GB/s
全球聚焦:小米13、iPhone 14 Pro全角度对比:小米正面碾压式完胜 背面有争议
环球快消息!世界杯半决赛现场将播放两首中文歌:你肯定都听过
当前热讯:CSS实现打字机动画效果
环球热消息:行为管理(锐捷交换篇)
环球播报:硬刚小米13!moto X40核心配置官方全面揭晓
环球热头条丨男子帮摔倒大爷报警反被讹引热议:已和解 对方赔偿男子2000元误工费
环球即时:旗舰猛兽!小米万兆路由器明天首销:1799元
天天时讯:太强了!卢伟冰称小米13 Pro应该叫“小米13 Pro Ultra”
【速看料】《三体》动画爆火!两部真人版剧集明年开播:网飞、腾讯对标
环球热推荐:又一合资倒下?家喻户晓的斯柯达或将退出中国市场
环球聚焦:历史首次!英国女孩通过基因编辑治好白血病对抗癌症:生物工程壮举
全球快资讯:框架第三课---作业讲解(数据增删改查),django请求生命周期流程图,django路由层,反向解析
天天热点!第一百一十二篇: JS数组Array(一)数组基本用法
焦点快播:SpringBoot+VUE
Dockerfile指令与Docker-compose容器编排-搭建docker私有仓库
【环球报资讯】伴娘穿露肩礼服肌肉健硕画面太美不敢看 网友:真金刚芭比
IGN给RX 7900 XTX显卡打7分:AMD性价比绝对YES
一加显示器X27发布:2K 165Hz屏、65W PD输出
观天下!小米13深度体验:补上最后一块短板!冲击高端真的要成了?
拒绝向SSD认输!机械硬盘每GB单价已暴跌87%:将越来越便宜
环球微动态丨python中的高阶函数
今日讯!雷军宣布小米13系列将很快登陆全球市场:国外用户激动坏了
【世界新要闻】《三体》动画播放量破1.3亿:豆瓣出现N多1星剧评
每日关注!奇葩!男子恋爱转账11万分手能向女方要回不 法院判决
动态焦点:AMD悄悄把RX 7900 XT的功耗提高了:游戏性能实测公布
世界热点评!FreeSWITCH学习笔记:模块
天天快播:服!敬业新郎一边结婚一边拉业务:39元套餐送1200分钟通话、90G流量和宽带
世界要闻:三亚游客乘观光直升机突遇意外迫降海面:发动机断油失效
视点!秒懂:JCTool 的 Mpsc 超高性能无锁队列 (史上最全+10W字长文)
全球要闻:免费可商用!荣耀HONOR Sans字体来了 附下载
0.89元/片:KN95口罩30片26.9元大促
全球热文:全球首款!大上科技墨水屏显示器上架:25.3寸超大屏幕
天天观速讯丨我们为什么使用Docker
天天滚动:win11上同时安装多个版本的python
当前信息:999元 小米Sound Pro太顶了:用户体验后感觉地板都在共振
天天看点:裸奔还是不行 Win10/11系统依然需要安全软件:免费的就行
每日速讯:顺丰突然又崩了!官方回应:系统异常 已恢复
系列最轻巧流畅系统!MIUI 14开发版首批推送来了
每日讯息!第一章作业
【全球报资讯】架构到底是指什么?
实验七-缓冲区溢出
全球看点:分析师称马斯克暴砍80%服务器订单:供应商Intel很受伤
新能源车换电池多少钱?比亚迪汉8万多 特斯拉13万
世界即时看!山东女生送闺蜜化妆品到内蒙被冻炸 当事人:心里很难过
全球首款真Hi-Fi无线耳机!vivo TWS 3 Pro图赏
2022最强电影!《阿凡达2》北京首映礼今晚举办:提前感受科幻巨作
PopClip使用教程图文详解 2022.12亲测有效
焦点快报!Html+CSS小案例项目:CSS开发小米商城电商产品展示效果
通过命令上传到GitHub
当前播报:对于async和await的使用方式、作用效果不怎么理解 ?没关系,初步看这篇就够了。
记录--记一次前端CSS升级
世界观焦点:中国生物最新研究!灭活疫苗对新冠康复者同样具有保护效力
环球热点评!女子住1楼质问物业为啥要交电梯费 网友力挺
OPPO Find N2 Flip亮相:副屏太惊艳
环球新资讯:日本公布2022年度热门汉字:“战”二次当选 理由奇葩
李诞入手小米13和13 Pro:大玩谐音梗
每日快报!【脚本项目源码】Python制作多功能音乐播放器,打造专属你的音乐播放器
每日关注!雷军分享小米13/MIUI 14内置壁纸原图:大批iPhone用户感谢
世界观天下!不用耳机也有立体听感!moto X40新增空间音频功能
电动自行车新国标充电插头曝光:三脚接口无了 不配套不上电
中国汽车工业见证者上新!全新BJ212开售:9.99万起
当前观点:顺丰又崩了!小程序查件、寄件都无法操作:范围极大
Python工具箱系列(十九)
Linux发布6.1稳定版:进一步提升国产LoongArch架构CPU支持
婆婆给刚出生9天宝宝喂米糊引热议 医生称太离谱:回击这是习俗 科学靠边
世界杯决赛用球亮相:取名“梦想”、内藏高科技
续航轻松破1000km 哈弗H6插电混动亮相泰国:老外都叹服!
环球观热点:马斯克反悔:毫米波雷达重新上车
每日看点!建立自己的kindle书库
国产麒麟系统下基于卫星的NTP网络时间服务器方案
清江浦一行代码 & JNPF :PM2.5全程质控,精准助力建筑业污染防治
全球观热点:sentry 在加载模块时闪退
世界微头条丨零基础开启元宇宙|如何快速创建虚拟形象
Git 的基本使用——笔记
今日视点:Python爬虫实战,requests+openpyxl模块,爬取手机商品信息数据(附源码)
k8s容器内部通过Prometheus Operator部署MySQL Exporter监控k8s集群外部的MySQL
网上打字员赚钱是真的吗?网上打字员是干什么的?
鸿蒙系统3.0支持哪些手机型号?鸿蒙系统3.0怎么升级?
微博借款利息高吗?微博借款利息和借呗哪个高?
余额宝消费红包是什么意思?余额宝消费红包怎么使用?
送男客户什么礼物合适?送男客户礼物前十件排名
电脑光驱是什么东西?电脑找不到光驱驱动器怎么办?
华硕笔记本如何下载驱动?华硕笔记本驱动怎么打开?
空的文件夹占内存吗?空的文件夹为什么删不掉?
DOTA是什么意思?dota和英雄联盟的区别有哪些?
如何提高电脑性能?提高电脑性能的方法有哪些?
环球热头条丨ADB批量截图,且用时间命名
每日信息:行为管理(锐捷智慧教室)
水溶性笔是什么意思?水溶性笔和油性笔的区别是什么?
白炽灯色温是多少?白炽灯色温4000-4600K是多少度?
八字有多少种排列组合?八字有食神代表什么?
荷月是几月的别称?十二个月的别称和雅称
酒店的英语怎么说?酒店前台的工作内容是什么?
全球关注:CAD.NET 批量打印、导出DPF