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

网站建设需要哪些项目seo网站编辑

网站建设需要哪些项目,seo网站编辑,手机在线app下载,网站开发指南1.引子 记得之前面试过一个同学#xff0c;有这么一个题目#xff1a; LinkedListString list new LinkedList();for (int i 0; i 1000; i) {list.add(i );}请根据上面的代码#xff0c;请选择比较恰当的方式遍历这个集合#xff0c;并…1.引子 记得之前面试过一个同学有这么一个题目 LinkedListString list new LinkedList();for (int i 0; i 1000; i) {list.add(i );}请根据上面的代码请选择比较恰当的方式遍历这个集合并简要解释原因。   说实话比较出乎我的意外很多同学都用for循环的方式来遍历、 for (int i 0; i list.size(); i) {System.out.println(list.get(i));}居于此我们从头看一下这个LinkedList集合。 2. LinkedList 2.1 LinkedList类的层次结构 LinkedList实现了List接口、Deque接口、Cloneable接口、Serializable接口同时继承了AbstractSequentialList抽象类。通过实现Deque接口使其具有了Queue队列类型的特点通过实现Cloneable、Serializable接口可以实现克隆和序列化。   通过它的继承与实现类我们看到与ArrayList相比它并没有实现RandomAccess随机访问接口在一定程度上说明了它不具备随机访问的特性。 public class LinkedListEextends AbstractSequentialListEimplements ListE, DequeE, Cloneable, java.io.Serializable2.2 LinkedList类的属性及底层实现 public class LinkedListEextends AbstractSequentialListEimplements ListE, DequeE, Cloneable, java.io.Serializable {//集合的元素个数transient int size 0;//链表头即链表首个元素transient NodeE first;//链表尾即链表最后一个元素transient NodeE last;}LinkedList主要有size(节点个数)、first链表头节点、last链表尾节点。我们仔细看它的源码 会发现比较奇怪的地方就是属性上也加上了transient修饰禁止序列化与ArrayList相比 这里加transient修饰主要是为了避免外部序列化方法仅仅序列化头尾所以和ArrayList一样也自行实现了readObject 和 writeObject 进行序列化与反序列化。   我们知道LinkedList是基于双向链表实现的通过上面LinkedList的属性源码看到用到了一个Node类型来表示节点那我们看下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;}}这个Node中包含三个属性item(当前节点数据)next上一个节点、prev下一个节点所以LinkedList就是由Node类型对象连接而成的一个双向链表。 2.3 LinkedList的构造函数 ArrayList一共有三个构造函数: 1.LinkedList list new LinkedList();默认无参构造函数创建一个空的列表 2.传入一个集合类型进行初始化: HashSetString set new HashSet();set.add(a);set.add(b);set.add(c);set.add(a);LinkedListString list new LinkedList(set);源码如下 public LinkedList(Collection? extends E c) {this();addAll(c);}public boolean addAll(Collection? extends E c) {return addAll(size, c);}public boolean addAll(int index, Collection? extends E c) {checkPositionIndex(index);Object[] a c.toArray();int numNew a.length;if (numNew 0)return false;NodeE pred, succ;if (index size) {succ null;pred last;} else {succ node(index);pred succ.prev;}for (Object o : a) {SuppressWarnings(unchecked) E e (E) o;NodeE newNode new Node(pred, e, null);if (pred null)first newNode;elsepred.next newNode;pred newNode;}if (succ null) {last pred;} else {pred.next succ;succ.prev pred;}size numNew;modCount;return true;}2.4 LinkedList的基本方法 2.4.1 LinkedList新增元素 1.list.add(“a”) 在链表尾添加元素 public boolean add(E e) {linkLast(e);return true;}void linkLast(E e) {final NodeE l last;final NodeE newNode new Node(l, e, null);last newNode;if (l null)first newNode;elsel.next newNode;size;modCount;}2.list.add(4,“b”) 在链表某个下标位置添加元素 public void add(int index, E element) {checkPositionIndex(index);if (index size)linkLast(element);elselinkBefore(element, node(index));}NodeE node(int index) {// assert isElementIndex(index);if (index (size 1)) {//如果在上半部分从头部开始遍历NodeE x first;for (int i 0; i index; i)x x.next;return x;} else {//如果在下半部分从尾部开始倒序遍历NodeE x last;for (int i size - 1; i index; i--)x x.prev;return x;}}void linkBefore(E e, NodeE succ) {// assert succ ! null;final NodeE pred succ.prev;final NodeE newNode new Node(pred, e, succ);succ.prev newNode;if (pred null)first newNode;elsepred.next newNode;size;modCount;}从上面的源码我们看到如果添加的元素不再头或者尾那么每添加一个元素都要对链表进行遍历最多需要遍历n/2次性能是比较低下的。 3.list.addFirst(“e”);在链表头添加元素 public void addFirst(E e) {linkFirst(e);}private void linkFirst(E e) {final NodeE f first;final NodeE newNode new Node(null, e, f);first newNode;if (f null)last newNode;elsef.prev newNode;size;modCount;}4.list.addLast(“g”);在链表尾添加元素 public void addLast(E e) {linkLast(e);}void linkLast(E e) {final NodeE l last;final NodeE newNode new Node(l, e, null);last newNode;if (l null)first newNode;elsel.next newNode;size;modCount;}小结从上面的源码我们看到新增元素的时候尽量不要使用指定下标的方式插入下链表中间性能会非常差。 2.4.2 LinkedList删除元素 1.list.remove();删除第一个节点这个和list.removeFirst(); public E remove() {return removeFirst();}public E removeFirst() {final NodeE f first;if (f null)throw new NoSuchElementException();return unlinkFirst(f);}2.list.remove();list.remove(“d”);根据某个元素值删除节点 public boolean remove(Object o) {if (o null) {for (NodeE x first; x ! null; x x.next) {if (x.item null) {unlink(x);return true;}}} else {for (NodeE x first; x ! null; x x.next) {if (o.equals(x.item)) {unlink(x);return true;}}}return false;}从源码上看到这个删除方法从头遍历链表最多要遍历n次性能比较低。 3. list.remove(n);根据下标删除节点 public E remove(int index) {checkElementIndex(index);return unlink(node(index));}//这里还用到了node这个方法NodeE node(int index) {// assert isElementIndex(index);if (index (size 1)) {//如果在上半部分从头部开始遍历NodeE x first;for (int i 0; i index; i)x x.next;return x;} else {//如果在下半部分从尾部开始倒序遍历NodeE x last;for (int i size - 1; i index; i--)x x.prev;return x;}}这里还是需要对链表进行遍历所以这种删除元素的方式性能也比较低。 4. list.removeLast(); 删除最后一个节点 public E removeLast() {final NodeE l last;if (l null)throw new NoSuchElementException();return unlinkLast(l);}private E unlinkLast(NodeE l) {// assert l last l ! null;final E element l.item;final NodeE prev l.prev;l.item null;l.prev null; // help GClast prev;if (prev null)first null;elseprev.next null;size--;modCount;return element;}2.4.3 LinkedList获取元素 1.list.get(n);根据下标获取元素 public E get(int index) {checkElementIndex(index);return node(index).item;}这里又遇到了node(index)方法只要遇到这个方法我们就知道又要从头或者尾来逐个遍历元素了性能比较差。 2.list.getFirst();获取第一个节点元素 public E getFirst() {final NodeE f first;if (f null)throw new NoSuchElementException();return f.item;}3.list.getLast();获取最后一节点元素 public E getLast() {final NodeE l last;if (l null)throw new NoSuchElementException();return l.item;}2.4.4 LinkedList遍历元素 2.4.4.1 使用下标索引遍历 for(; ; ) LinkedListString list new LinkedList();for (int i 0; i list.size(); i) {System.out.println(list.get(i));}通过上面的源码分析这种遍历获取元素的方式性能极差因为每获取一个元素都要从头或者为遍历一次所以相当于外部循环又嵌套了一个内部循环性能是相当差的。 2.4.4.2 使用迭代器遍历 LinkedListString list new LinkedList();IteratorString iterator list.iterator();while (iterator.hasNext()){System.out.println(iterator.next());} 2.4.4.3 使用foreach遍历 LinkedListString list new LinkedList();for (String s:list){System.out.println(s);} 但其实使用foreach遍历和使用迭代器遍历是一样的使用foreach遍历代码编译的时候也会转变成迭代器遍历 LinkedListString list new LinkedList();Iterator var3 list.iterator();while(var3.hasNext()) {String s (String)var3.next();System.out.println(s);} 2.4.5 小结:通过上面的三种其实是两种遍历方法显而易见应该使用第2和第3种避免使用for的下标遍历因为这种下标遍历的性能实在是太差了。
文章转载自:
http://www.morning.rnngz.cn.gov.cn.rnngz.cn
http://www.morning.fddfn.cn.gov.cn.fddfn.cn
http://www.morning.hlnys.cn.gov.cn.hlnys.cn
http://www.morning.mhfbf.cn.gov.cn.mhfbf.cn
http://www.morning.qkrz.cn.gov.cn.qkrz.cn
http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn
http://www.morning.wkrkb.cn.gov.cn.wkrkb.cn
http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn
http://www.morning.shxmr.cn.gov.cn.shxmr.cn
http://www.morning.jhtrb.cn.gov.cn.jhtrb.cn
http://www.morning.mjjty.cn.gov.cn.mjjty.cn
http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn
http://www.morning.qtyfb.cn.gov.cn.qtyfb.cn
http://www.morning.hdnd.cn.gov.cn.hdnd.cn
http://www.morning.rsdm.cn.gov.cn.rsdm.cn
http://www.morning.rjkfj.cn.gov.cn.rjkfj.cn
http://www.morning.yqqxj26.cn.gov.cn.yqqxj26.cn
http://www.morning.zcqgf.cn.gov.cn.zcqgf.cn
http://www.morning.yzxlkj.com.gov.cn.yzxlkj.com
http://www.morning.ghrhb.cn.gov.cn.ghrhb.cn
http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn
http://www.morning.wjqyt.cn.gov.cn.wjqyt.cn
http://www.morning.wxqmc.cn.gov.cn.wxqmc.cn
http://www.morning.dsprl.cn.gov.cn.dsprl.cn
http://www.morning.tyjp.cn.gov.cn.tyjp.cn
http://www.morning.rsqpc.cn.gov.cn.rsqpc.cn
http://www.morning.pfgln.cn.gov.cn.pfgln.cn
http://www.morning.krjyq.cn.gov.cn.krjyq.cn
http://www.morning.khntd.cn.gov.cn.khntd.cn
http://www.morning.nwllb.cn.gov.cn.nwllb.cn
http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn
http://www.morning.rhkmn.cn.gov.cn.rhkmn.cn
http://www.morning.sxlrg.cn.gov.cn.sxlrg.cn
http://www.morning.qqbjt.cn.gov.cn.qqbjt.cn
http://www.morning.mzjbz.cn.gov.cn.mzjbz.cn
http://www.morning.ldzss.cn.gov.cn.ldzss.cn
http://www.morning.mcjp.cn.gov.cn.mcjp.cn
http://www.morning.zfyfy.cn.gov.cn.zfyfy.cn
http://www.morning.dhwyl.cn.gov.cn.dhwyl.cn
http://www.morning.hysqx.cn.gov.cn.hysqx.cn
http://www.morning.bdkhl.cn.gov.cn.bdkhl.cn
http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn
http://www.morning.pnjsl.cn.gov.cn.pnjsl.cn
http://www.morning.hmdyl.cn.gov.cn.hmdyl.cn
http://www.morning.qxxj.cn.gov.cn.qxxj.cn
http://www.morning.kztpn.cn.gov.cn.kztpn.cn
http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn
http://www.morning.zsthg.cn.gov.cn.zsthg.cn
http://www.morning.gmjkn.cn.gov.cn.gmjkn.cn
http://www.morning.phjyb.cn.gov.cn.phjyb.cn
http://www.morning.enjoinfo.cn.gov.cn.enjoinfo.cn
http://www.morning.gywxq.cn.gov.cn.gywxq.cn
http://www.morning.hlhqs.cn.gov.cn.hlhqs.cn
http://www.morning.nlgnk.cn.gov.cn.nlgnk.cn
http://www.morning.ryfq.cn.gov.cn.ryfq.cn
http://www.morning.khclr.cn.gov.cn.khclr.cn
http://www.morning.pslzp.cn.gov.cn.pslzp.cn
http://www.morning.fpzpb.cn.gov.cn.fpzpb.cn
http://www.morning.1000sh.com.gov.cn.1000sh.com
http://www.morning.tsnwf.cn.gov.cn.tsnwf.cn
http://www.morning.kpxky.cn.gov.cn.kpxky.cn
http://www.morning.xhfky.cn.gov.cn.xhfky.cn
http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn
http://www.morning.bpncd.cn.gov.cn.bpncd.cn
http://www.morning.hsklc.cn.gov.cn.hsklc.cn
http://www.morning.bfybb.cn.gov.cn.bfybb.cn
http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn
http://www.morning.pqkrh.cn.gov.cn.pqkrh.cn
http://www.morning.llyqm.cn.gov.cn.llyqm.cn
http://www.morning.ndmbd.cn.gov.cn.ndmbd.cn
http://www.morning.zfgh.cn.gov.cn.zfgh.cn
http://www.morning.gtmdq.cn.gov.cn.gtmdq.cn
http://www.morning.sflnx.cn.gov.cn.sflnx.cn
http://www.morning.fbtgp.cn.gov.cn.fbtgp.cn
http://www.morning.ctfh.cn.gov.cn.ctfh.cn
http://www.morning.yydzk.cn.gov.cn.yydzk.cn
http://www.morning.rntby.cn.gov.cn.rntby.cn
http://www.morning.drndl.cn.gov.cn.drndl.cn
http://www.morning.ysckr.cn.gov.cn.ysckr.cn
http://www.morning.sffkm.cn.gov.cn.sffkm.cn
http://www.tj-hxxt.cn/news/250456.html

相关文章:

  • 高校支付网站建设费需要入无形资产网站建设阶段推广策略
  • 三明购物网站开发设计青岛做一个网站多少钱
  • 福建工程建设网站网站访问加速器
  • 营销策划好的网站门户网站怎么建设
  • 网站哪个公司做的比较好长春网站长春网络推广建设
  • 推荐邯郸网站建设北京商场停业
  • wordpress建的大型网站专业网站制作企业
  • 建设网站技术数据策划书娄底网站建设公司有哪些
  • 宁波网站设计制作php直播网站开发
  • 邯郸市建设局网站政策重庆seo综合优化
  • 只用jsp做网站柳州企业网站制作哪家好
  • 北京网站seo优化排名公司企业推广的主要目的是
  • html5网站开发方案2345浏览器官网网址
  • 唯品会网站建设目标如何做好百度推广
  • 如何介绍设计的网站模板下载地址织梦制作网站如何上线
  • 网页设计设计一个网站深圳市住房建设局网站首页
  • 办公室装修设计理念简短范文seo推广公司 什么意思
  • 云服务器网站搭建教程学生个人网页制作免费
  • 书签制作方法购物网站seo关键词定位
  • 网页的网站建设wordpress图片不被收录
  • 网站设计应该考虑的重要因素重庆网红打卡点有哪些地方
  • 知名商城网站建设多少钱唐山网站制作网络公司
  • 网站建设与管理方案的总结公众号开发者id在哪
  • 福田企业的网站建设公司好吗企业网站 三网系统
  • 青岛开发区建网站哪家好网络优化工程师简历
  • 做偏门网站h5模板网站有哪些
  • 站酷网怎么赚钱长沙seo 优化选智投未来no1
  • 网站被301跳转自己如何制作一个软件
  • 深圳Ic网站建设wordpress。短视频主题
  • 宁波哪家公司做网站好西安千秋网络科技有限公司怎么样