队列(堆栈)

java.util.Queue 队列接口

  • Queue继承自Collection,所以队列本身也是一种集合
  • 队列可以保存一组元素,但是特点是存取元素必须遵循先进先出原则
  • 常用实现类:java.util.LinkedList

offer方法:入队操作,元素会被追加到队列末尾
poll方法:出队操作,获取队首元素后该元素从队列中被删除
peek方法:引用队首元素,获取后该元素仍然在队列中

   Queue<String> queue = new LinkedList<>();
    queue.offer("one");
    queue.offer("two");
    queue.offer("three");
    System.out.println(queue);  //[one, two, three]
  
    String str = queue.poll();
    System.out.println(str);  //one
    System.out.println(queue);  //  [two, three]
   
    str  =queue.peek();
    System.out.println(str);   //two
    System.out.println(queue);   // [two, three]

栈结构

  • 栈可以保存一组元素,但是存取元素必须遵循先进后出通常使用栈队列结构完成前进"后退"这样的功能使用
  • Deque双端队列如果从同一侧做入队操作就实现了栈结构,因此Deque也称为栈提供它出入栈的经典方法:push,pop

push:入栈操作元素会被追加到栈首
pop:出栈操作,获取栈首元素后该元素从栈中被删除

Deque<String> stack = new LinkedList<>();
    stack.push("one");
    stack.push("two");
    stack.push("three");
    stack.push("four");
    System.out.println(stack);

    String str = stack.pop();
    System.out.println(str);     //[four, three, two, one]
    System.out.println(stack);   //[three, two, one]

双端队列接口:java.util.Deque

  • Deque继承自Queue.特点是队列两端都可以做入队操作
  • 常用的实现类:java.util.LinkedList
   Deque<String>deque = new LinkedList<>();
    deque.offer("one");
    deque.offer("two");
    deque.offer("three");
    deque.offer("four");
    System.out.println(deque);
  
    deque.offerFirst("five");    //从队首方向入队
   
    deque.offerLast("six");    //从队尾方向入队,与offer一致

    String str = deque.poll();     //从队首方向出队
      
    str = deque.pollFirst();   //从队首方向出队
   
    str = deque.pollLast();  //从队尾方向出队
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值