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

免费做网站通栏广告兼职制作网站开发

免费做网站通栏广告,兼职制作网站开发,建设网站需要学习什么语言,网站规划与开发专业前言#xff1a; 1.对Queue接口进行实现 2.底层的数据结构还是数组#xff0c;同时还是双向的#xff0c;有前后指针 3.不是线程安全的 4.可以当作队列和栈来使用#xff0c;选择使用队列时#xff0c;ArrayDeque推荐首选 5.不可以添加null数据#xff0c;会抛异常 …前言 1.对Queue接口进行实现 2.底层的数据结构还是数组同时还是双向的有前后指针 3.不是线程安全的 4.可以当作队列和栈来使用选择使用队列时ArrayDeque推荐首选 5.不可以添加null数据会抛异常 一些重要变量和常量 //元素数组transient Object[] elements; //头指针指向头部的第一个元素的位置transient int head;//尾指针将下一个元素添加到尾部的索引也就是指向尾端第一个可以插入元素的空位transient int tail;//最小容量同时必须时2的倍数private static final int MIN_INITIAL_CAPACITY 8; 部分源码分析 1.初始化对象 //还是分配16的空间内存 public ArrayDeque() {elements new Object[16];} 2.添加头节点 /*** 在首部添加节点*/public void addFirst(E e) {//如果插入值为空则抛出异常if (e null)throw new NullPointerException();//这里定位和之前hashmap中定位table的位置差不多ArrayDeque本身是一个循环数组//head (head - 1) (elements.length - 1)//在这里相当于取余操作同时也保证了下标不为负值elements[head (head - 1) (elements.length - 1)] e;//添加元素之后如果头指针和尾指针相同才会进行扩容看名字就晓得扩大两倍if (head tail)doubleCapacity();}//也是添加头节点的方法这里是返回是否添加成功public boolean offerFirst(E e) {addFirst(e);return true;} 3.扩容 /*** 扩容操作 扩大两倍*/private void doubleCapacity() {assert head tail;int p head;int n elements.length;// 头节点右边元素的个数int r n - p; //扩容新容量是旧容量的两倍int newCapacity n 1;if (newCapacity 0)throw new IllegalStateException(Sorry, deque too big);Object[] a new Object[newCapacity];//先复制右边的元素System.arraycopy(elements, p, a, 0, r);//再复制左边的元素System.arraycopy(elements, 0, a, r, p);//指针重新初始化elements a;head 0;tail n;} 4、添加尾节点 /*** 插入节点到尾部*/public void addLast(E e) {if (e null)throw new NullPointerException();//直接添加即可因为tail指向尾端第一个可以插入元素的空位elements[tail] e;//添加之后再做是否需要扩容的判断if ( (tail (tail 1) (elements.length - 1)) head)doubleCapacity();}//也是另外一个添加尾节点的方法返回成功与否public boolean offerLast(E e) {addLast(e);return true;} 5.删除头结点 /*** 删除头结点返回删除的元素如果删除的元素为null,返回null*/public E pollFirst() {int h head;SuppressWarnings(unchecked)E result (E) elements[h];// 如果队列为空if (result null)return null;//删除头结点将头结点这个位置设为null为了GCelements[h] null; // Must null out slot//头指针前移head (h 1) (elements.length - 1);return result;}/*** 这个也是删除头节点但如果删除的元素为null,抛出异常*/public E removeFirst() {E x pollFirst();if (x null)throw new NoSuchElementException();return x;} 6.删除尾节点 /*** 删除尾结点返回删除的元素如果删除的元素为null,返回null*/public E pollLast() {//tail是指向尾端第一个可以插入元素的空位所以他前面就是尾节点的索引//这里进行-1即可获取尾节点的索引地址int t (tail - 1) (elements.length - 1);SuppressWarnings(unchecked)E result (E) elements[t];if (result null)return null;elements[t] null;//将尾指针设在当前位置也就是被删除尾节点的位置tail t;return result;}/*** 这个也是删除尾节点但如果删除的元素为null,抛出异常*/public E removeLast() {E x pollLast();if (x null)throw new NoSuchElementException();return x;} 还有些获取某个节点实现代码都差不多这里就不一一列出来了到这ArrayDeque也结束了。
http://www.pierceye.com/news/266244/

相关文章:

  • 石家庄网站建设接单金融软件网站建设公司排名
  • 企企业业网网站站建建设设哪个网站可以做纸箱
  • 国外专门做视频翻译网站吗山西时代网站建设
  • 云南省城乡住房与建设厅网站杭州网站制作平台公司
  • 程序员做网站美工能过关吗深圳品牌折扣店
  • 地产网站设计怎么做网贷网站
  • 公司网站是如何搭建的跨境电商被骗血本无归
  • 品牌网站建设目标vps怎么做多个网站
  • 普陀区建设工程质检网站网站建设 工作方案
  • 三河做网站开发公司虚列成本
  • 网站公司建设网站首页注册资本可以随便填吗
  • 网站做链接的意义是什么意思网站设计与制作
  • 快速开发网站的应用程序网站高中建设工具
  • 备案期间网站可以做竞价吗网站开发四川
  • 盐城网站app建设竣工验收备案查询
  • 河南省建设厅八大员网站相城网页设计
  • 建设电子商务网站要多少钱怎么自己开公司
  • 网站设计分析怎么写5年的室内设计师收入
  • 珠海网站建设服务谷歌关键词排名查询工具
  • 三网站合一系统优化最好的安卓手机
  • 那几个网站可以做h5产品经理培训哪个机构好
  • 吉林市做网站阿里巴巴国际站怎么运营
  • 中国网站排名100网站建设属于销售费用
  • 最新seo网站优化教程温州微网站
  • 网站双线选择昆明网站制作代理
  • 网站推广优化招聘织梦网站图片设置多大
  • 四川德充建设集团有限公司网站台州seo免费诊断
  • 农庄网站模板网站 文件夹 上传
  • 做长图文网站企业网站开发服务合同
  • 长椿街网站建设九江网站推广徽hyhyk1