You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

IntQueue.java 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * Javassist, a Java-bytecode translator toolkit.
  3. * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
  4. *
  5. * The contents of this file are subject to the Mozilla Public License Version
  6. * 1.1 (the "License"); you may not use this file except in compliance with
  7. * the License. Alternatively, the contents of this file may be used under
  8. * the terms of the GNU Lesser General Public License Version 2.1 or later,
  9. * or the Apache License Version 2.0.
  10. *
  11. * Software distributed under the License is distributed on an "AS IS" basis,
  12. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  13. * for the specific language governing rights and limitations under the
  14. * License.
  15. */
  16. package javassist.bytecode.analysis;
  17. import java.util.NoSuchElementException;
  18. class IntQueue {
  19. private static class Entry {
  20. private IntQueue.Entry next;
  21. private int value;
  22. private Entry(int value) {
  23. this.value = value;
  24. }
  25. }
  26. private IntQueue.Entry head;
  27. private IntQueue.Entry tail;
  28. void add(int value) {
  29. IntQueue.Entry entry = new Entry(value);
  30. if (tail != null)
  31. tail.next = entry;
  32. tail = entry;
  33. if (head == null)
  34. head = entry;
  35. }
  36. boolean isEmpty() {
  37. return head == null;
  38. }
  39. int take() {
  40. if (head == null)
  41. throw new NoSuchElementException();
  42. int value = head.value;
  43. head = head.next;
  44. if (head == null)
  45. tail = null;
  46. return value;
  47. }
  48. }