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

盐城高端网站建设清新织梦淘宝客模板淘客网站程序源码

盐城高端网站建设,清新织梦淘宝客模板淘客网站程序源码,做外汇看新闻在什么网站看,棋牌类网站怎么做ArrayList、LinkedList、与Vector的区别 解读ArrayList 是一个可改变大小的数组LinkedList 是一个双向链表Vector 属强同步类 拓展知识面ArrayList是如何扩容#xff1f;如何利用List实现LRU#xff1f; 解读 List主要有ArrayList、LinkedList与Vector几种实现。这三者都实现… ArrayList、LinkedList、与Vector的区别 解读ArrayList 是一个可改变大小的数组LinkedList 是一个双向链表Vector 属强同步类 拓展知识面ArrayList是如何扩容如何利用List实现LRU 解读 List主要有ArrayList、LinkedList与Vector几种实现。这三者都实现了List接口使用方式也极其相似主要区别在于因为实现方式的不同所以对不同的操作就有不同的效率。 ArrayList 是一个可改变大小的数组 当更多的元素加入到ArrayList中时其大小将会动态的增长内部的元素可以直接通过get与set方法进行访问因为ArrayList本质上就是数组。 LinkedList 是一个双向链表 在添加和删除元素的时间具有比ArrayList更好的性能但是在get与set方面是弱于ArrayList。当然了这些对比都是指数据量很大或者操作很频繁的情况下的对比如果数据量和运算量很小那么就没有对比的意义。 Vector 属强同步类 Vector和ArrayList类似但它属于强同步类。如果你的程序本身是线程安全的(thread-safe没有在多个线程之间共享同一个集合或者对象)那么使用ArrayList是更好的选择。 Vector和ArrayList在更多元素添加进来时会请求更大的空间。Vector每次请求是它自身大小的双倍空间而ArrayList每次对size增长50%。 而LinkedList还实现了Queue个Deque接口该接口与List相比其提供了更多的方法包括offer()、peek()、poll()等。 注意默认情况下ArrayList的初始容量非常小所以如果可以预估数据量的话分配一个较大的初始值才属于最佳操作这样可以减少调整大小的开销。 拓展知识面 ArrayList是如何扩容 首先我们要明白ArrayList是基于数组的这个上面讲到了我们都知道申请数组的时间只能申请一个定长的数组那么List是如何实现数组扩容的呢ArrayList的扩容有几个步骤 检查新增元素后是否会超过数组的容量若超过则进行下一步扩容设置新增容量为原始(旧/老)容量的1.5倍最多不超过2^31-1在Java8中ArrayList的容量最大是Integer.MAX_VALUE-8这是由于在Java8中ArrayList内部实现进行了一些改进使用了一些数组复制的技巧来提高性能和内存的利用率而这些技巧需要额外的8个元素的空间来进行优化。之后呢申请一个容量为1.5倍的数组将原有数组的元素复制到新数组中自此扩容完成。 如何利用List实现LRU LRU即最近最少使用策略基于时空局部性原理(最近访问的未来也会被访问的)往往作为缓存淘汰的策略如Redis和GuavaMap都使用了这种套胎策略。 我们可以基于LinkedList来实现LRU因为LinkedList基于双向链表每个节点都会记录上一个和下一个的节点具体实现方式如下 public class LruListCacheE {private final int maxSize;private final LinkedListE list new LinkedList();public LruListCache (int maxSize) {this.maxSize maxSize;} public void add(E e) {if(list.size() maxSize) {list.addFrist(e);}else{list.removeLast(); list.addFrist(e);}}public E get(int index) {E e list.get(index);list.remove(e);add(e);return e;}Overridepublic String toString() {return list.toString();}}OK如果不懂数组和链表的区别的话随后我有一个专门的数据结构的专栏会讲到栈和队列、数组和链表以及二叉树的遍历等等内容。会做详细解说。
http://www.zqtcl.cn/news/53726/

相关文章:

  • 宁波网站建设推广想注册自己的品牌怎么注册
  • 网站商城与网站区别吗南京银城建设 网站
  • 网站建设什么牌子好ace wordpress
  • 石狮app网站开发哪家好软件项目管理方案
  • 深圳市国外网站建设邢台商城类网站建设
  • 江苏建站服务网站开发技术项目说明书
  • 做网站坂田重庆长寿网站设计公司哪家好
  • wordpress 爆路径商城网站优化方案
  • 网页设计报价单模板网站优化 图片
  • 经典网站欣赏常用的搜索引擎有
  • 注册功能的网站怎么做做网站容易学吗
  • 目前网站开发趋势安徽省交通运输厅秦勤
  • 深圳企业做网站公司有哪些大连建设网站
  • 教人做甜点的网站做虚假彩票网站判几年
  • 用phpmysql做图书网站温州网站设计服务
  • 深圳网站建设哪些沈阳注册公司
  • 北京新机场建设网站网络代码怎么学
  • 做网站需要具备什么语言宁海县建设局网站下属单位
  • win2008 建立网站个人 备案 多个网站
  • 门户网站有哪几个wordpress运行慢
  • 备案网站名称有什么用做图片视频的网站有哪些
  • 宜昌做网站公司有哪些网站网站设计规划书
  • 广东省公路建设公司官方网站个人网站建设实训目的
  • 做网站的哪个好网站备案被恶意注销
  • 沈阳唐朝网站建设网站建设风险管理
  • 什么值得买网站模版如何取得网站的管理权限
  • 那个大学业做网站推广平台赚佣金
  • 东莞做网站优化哪家好交换链接的其它叫法是
  • 网站倒计时怎么做江门网站制作 华企立方
  • 营销型网站框架求一个能用的网站