Java SE 044 使用LinkedList实现Stack与Queue.docx

Java SE 044 使用LinkedList实现Stack与Queue.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java SE 044 使用LinkedList实现Stack与Queue

Java SE 044 使用LinkedList实现Stack与Queue一、LinkedList与ArrayListLinkedList的add方法底层是将一个Entry类型的数据存放进去,即包含一个前驱地址引用、后继地址引用以及数据对象的地址引用。对于一个链表来说,它肯定有一个向前的引用,一个向后的引用,还有个数据本身,如果只是将数据放到链表里面了,引用就没有了,就无法找到下一个元素和前一个元素。因此LinkedList在实现的时候,它是在里面生成一个新的Entry这样一个对象,Entry这个类本身包含了三个部分,第一个是向前的引用,第二个是向后的引用,第三个就是数据,数据就是向链表里面增加的数据。它是用这个作为一个Entry类的成员变量,然后构造出来一个Entry对象,将新生成的Entry对象放到LinkedList里面。因此我们执行linkedlist.add(“aaa”),并不是将字符串儿的引用放到了LinkedList链表里面,而是将一个由字符串儿所构造成的Entry对象放到了LinkedList链表里面。而ArrayList是直接将数据放入到数组里面就可以了。总结:当向ArrayList添加一个对象时,实际上就是将该对象放置到了ArrayList底层维护的数组当中,当向LinkedList中添加一个对象时,实际上LinkedList内部会生成一个Entry对象,该Entry对象的结构为:Entry{Entry previous;Object data;Entry next;}其中Object类型的元素element就是我们向LinkedList中所添加的元素,然后Entry又构造好了向前与向后的引用privious,next,最后将生成的这个Entry对象加入到了链表当中。换句话说:LinkedList维护的是一个一个的Entry对象。二、自定义队列(Queue)package com.javase.linkedlist;import java.util.LinkedList;publicclass MyQueue {@SuppressWarnings(unchecked)private LinkedList list = new LinkedList();//将元素对象放到队列里面去@SuppressWarnings(unchecked)publicvoid put(Object o){list.addLast(o);}//取元素public Object get(){Object o = list.getFirst();list.removeFirst();return o;}publicboolean isEmpty(){returnlist.isEmpty();}publicstaticvoid main(String[] args) {MyQueue myQueue = new MyQueue();myQueue.put(new Integer(1));myQueue.put(new Integer(2));myQueue.put(new Integer(3));System.out.println(myQueue.get());System.out.println(myQueue.get());System.out.println(myQueue.get());System.out.println(myQueue.isEmpty());}}三、自定义栈(Stack)

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档