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

论坛网站开发文档北京清控人居建设集团网站

论坛网站开发文档,北京清控人居建设集团网站,php企业网站程序,花垣网站建设上一篇写的是ArrayList#xff0c;这一篇写一下LinkedList. 开宗明义#xff0c;因为Vector已经被废弃了#xff0c;所以list家族只剩下ArrayList和LinkedList两兄弟了#xff0c;这里直接对比一下二位#xff1a; ArrayList基于动态数组的实现#xff0c;它长于随机访问…上一篇写的是ArrayList这一篇写一下LinkedList. 开宗明义因为Vector已经被废弃了所以list家族只剩下ArrayList和LinkedList两兄弟了这里直接对比一下二位 ArrayList基于动态数组的实现它长于随机访问元素但是在中间插入和移除元素时较慢 LinkedList基于链表实现在List中间进行插入和删除的代价较低提供了优化的顺序访问。LinkedList在随机访问方面相对比较慢但是它的特性集较ArrayList更大。 那么到底特性集大在哪里呢 这就是这篇博客的重点在JAVA中LinkedList可以作为我们最经常使用的两种数据结构来使用栈和队列。Java中实现队列一般都是用LinkedList实现。 这是因为LinkedList的实现是一个双向链表所以无论是FIFO还是FILO都可以实现。 (1)初始化 先看一下LinkedList的继承情况吧 public class LinkedListEextends AbstractSequentialListEimplements ListE, DequeE, Cloneable, java.io.Serializable 然后看一下LinkedList的成员变量 transient int size 0; transient NodeE first; transient NodeE last; 这就是我们很早学过的双向链表的实现基本要素。 看一下Node节点的定义回忆一下双向链表后边的操作就不再贴代码了因为都是数据结构第一节课学的。 private static class NodeE {E item;NodeE next;NodeE prev;Node(NodeE prev, E element, NodeE next) {this.item element;this.next next;this.prev prev;} } 这里注意一下前面的修饰符 transient 关键字: 当对象被序列化时写入字节序列到目标文件时transient阻止实例中那些用此关键字声明的变量持久化当对象被反序列化时从源文件读取字节序列进行重构这样的实例变量值不会被持久化和恢复。 为什么要有这个关键字呢因为我们要告诉虚拟机这三个成员不是LinkedList的永久性变量。点到为止后续在JVM的总结中会专门介绍一下各种关键字和虚拟机的关系。 (2)用作栈、队列和双向队列 对于这三种不同的数据结构的操作LinkedList规定了6种基本动作。 getFirst() getLast() removeFirst() removeLast() addFirst() addLast() 其中removeFirst()会调用unlinkFirst()函数removeLast会调用unlinkLast()函数 下面看看是如何实现的栈和队列的功能。 用作栈 public void push(E e) {addFirst(e); } public E pop() {return removeFirst(); } View Code 用作队列 public E peek() {final NodeE f first;return (f null) ? null : f.item; } public E poll() {final NodeE f first;return (f null) ? null : unlinkFirst(f); } public boolean offer(E e) {return add(e); } View Code 用作双端队列 public boolean offerFirst(E e) {addFirst(e);return true; } public boolean offerLast(E e) {addLast(e);return true; } public E peekFirst() {if (size 0)return null;return getFirst(); } public E peekLast() {if (size 0)return null;return getLast(); } public E pollFirst() {if (size 0)return null;return removeFirst(); } public E pollLast() {if (size 0)return null;return removeLast(); } View Code 因为都是最简单的操作都是望文生义的函数所以就没写注释并且折叠代码了。 (3)其实没什么好写的 写完第二篇了最大的感觉这些东西直接看文档就可以了但是自己再看一遍源码也挺有趣所以慢慢写吧看一点写一点从集合类到IO到并发到JVM希望可以写完。 之前读了一本关于并发的书最大的感慨就是数据结构太神奇被各种思路使用的各种形式的数据结构尤其是Disruptor使用的环形队列给惊艳到了。 读研以来一直在看机器学习、并发编程和设计模式的知识实验室项目从前端都后台到算法都尝试过但是都不够深入浮于表面没什么用。 于是寒假反思了一下开学又和晓晖聊了聊感觉自己还是更适合做个软件工程师而不是算法工程师。 所以趁着在学校把一切都推倒重来从零开始夯实基础。  转载于:https://www.cnblogs.com/yueyanglou/p/5231901.html
http://www.huolong8.cn/news/63617/

相关文章:

  • 网站开发面试内容东莞网络推广外包托管
  • 教做公众号的网站外贸网站制作怎么选
  • wordpress建站方便吗个人网站建设方案书怎么写
  • 自己弄个网站要多少钱能被百度收录的建站网站
  • siteservercms做的网站在后台进行修改教程怎么建设电子商城网站
  • 个人网页模板关于爱国seo搜索引擎优化书籍
  • 中国建设银行官网站额度申请网站单页设计
  • 什么样的网站做百度广告好酒泉如何做百度的网站
  • 网站顶部flash下载腾讯云网站建设流程图
  • 网站建设怎么把代码放入网站上网上商城网站建设
  • 海鲜网站开发目的在于重庆网站建设与网络推广
  • 做网站 然后百度推广石家庄网站建设联系方式
  • 建设部网站建造师管理号汕头论坛贴吧
  • 2017做网站赚钱软件开发平台是什么意思
  • 建立网站解析会员视频是犯什么罪你们需要网站建设
  • 网站文章怎么做内链上海猎头公司排名
  • 一家做公司评估的网站seo搜索引擎实训心得体会
  • 重庆建设银行官方网站首页自己的店铺如何弄小程序
  • 网站做竞价对seo有影响吗清河网站建设
  • 广州网站建设技术方案做多语言网站多少钱
  • 网站开发资格证书山西省普通高考考生网上服务平台
  • 网站建设课的感想威海网站建设是什么
  • 哪个通讯公司的网络好网站标题具体怎样优化
  • PHP+MySQL网站开发全程实例安阳县事业单位招聘
  • 网站后台系统访问简述营销型企业网站建设的内容
  • 企业网站 优帮云移动端模板网站建设
  • 做网站用别人的图片做视频的网站带模板
  • 手机免费制作网站模板网络营销推广策划步骤
  • 360建站平台网站建设的成果怎么写
  • 西安网站建设优化与推广整合营销名词解释