A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵宇 中级黑马   /  2012-9-21 09:50  /  2252 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵宇 于 2012-9-25 08:39 编辑
  1. public class MyQueue
  2. {

  3. private LinkedList list = new LinkedList();
  4. public void put (Object o)
  5. {
  6. list.addLast(o);

  7. }
  8. public Object get()
  9. {

  10. return list.removeFirst();

  11. }
  12. public boolean isEmpty()
  13. {
  14. return list.isEmpty();

  15. }
  16. public static void main(String[] args)
  17. {
  18. MyQueue myQueue = new MyQueue();

  19. myQueue.put("one");
  20. myQueue.put("two");
  21. myQueue.put("three");

  22. System.out.println(myQueue.get());
  23. System.out.println(myQueue.get());
  24. System.out.println(myQueue.get());

  25. System.out.println(myQueue.isEmpty());

  26. }
  27. }
复制代码

2 个回复

倒序浏览
public class Test {
        private LinkedList<String> queue = new LinkedList<String>() ;
        public void fallIn(String s){
                System.out.println(s + "入队");
                queue.add(s) ;
               
        }
        public void fallOut(){
                int len = queue.size() ;
                for(int i=0;i<len;i++){
                        System.out.println( queue.removeFirst() + "出队");
                }
        }
        public void print(){
                System.out.print("元素有:") ;
                for(String list : queue){
                        System.out.print(list + " ");
                }
        }
       
        public static void main(String[] args) {
                Test t = new Test() ;
                t.fallIn("a") ;
                t.fallIn("l") ;
                t.fallIn("l") ;
                t.fallOut() ;
                t.fallIn("i") ;
                t.fallOut() ;
                t.fallIn("u") ;
                t.fallIn("g") ;
                t.fallIn("l") ;
                t.print() ;
        }
}
回复 使用道具 举报
首先要理解,所谓的队列的规则,先进先出的规则,然后在编写代码,以下是通过LinkedList的固有的方法来模拟队列的实现:
import java.util.*;

class DuiLie
{
       
        private LinkedList link;
        DuiLie()
        {
                link = new LinkedList();
        }
        public void myAdd(Object obj)
        {
                link.addFirst(obj);//先进:每次往集合中添加元素都将其放在第一位
        }

        public Object myGet()
        {
                return link.removeLast();//先出:每次去集合中取元素的时候都获取集合的最后一个元素
        }

        public boolean isNull()
        {
                return link.isEmpty();
        }
}



class  LinkedListTest
{
        public static void main(String[] args)
        {

                DuiLie dl = new DuiLie();
                dl.myAdd("abc0");
                dl.myAdd("abc1");
                dl.myAdd("abc2");
                dl.myAdd("abc3");

                while(!dl.isNull())
                {
                        System.out.println(dl.myGet());
                       
                }
        }
}
同样的,楼主的代码是能够完美的实现模拟队列的操作的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马