com.badlogic.gdx.utils.Queue类的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(9.1k)|赞(0)|评价(0)|浏览(84)

本文整理了Java中com.badlogic.gdx.utils.Queue类的一些代码示例,展示了Queue类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Queue类的具体详情如下:
包路径:com.badlogic.gdx.utils.Queue
类名称:Queue

Queue介绍

[英]A resizable, ordered array of objects with efficient add and remove at the beginning and end. Values in the backing array may wrap back to the beginning, making add and remove at the beginning and end O(1) (unless the backing array needs to resize when adding). Deque functionality is provided via #removeLast() and #addFirst(Object).
[中]一个可调整大小、有序的对象数组,在开始和结束时具有高效的添加和删除功能。备份数组中的值可以回绕到开头,在开头和结尾处进行添加和删除O(1)(除非添加时备份数组需要调整大小)。Deque功能通过#removeLast()和#addFirst(对象)提供。

代码示例

代码示例来源:origin: libgdx/libgdx

@Test
public void addFirstAndLastTest() {
  Queue<Integer> queue = new Queue<Integer>();
  queue.addFirst(1);
  queue.addLast(2);
  queue.addFirst(3);
  queue.addLast(4);
  assertEquals(0, queue.indexOf(3, true));
  assertEquals(1, queue.indexOf(1, true));
  assertEquals(2, queue.indexOf(2, true));
  assertEquals(3, queue.indexOf(4, true));
}

代码示例来源:origin: libgdx/libgdx

public T next () {
      if (index >= queue.size) throw new NoSuchElementException(String.valueOf(index));
      if (!valid) {
// System.out.println(iterable.lastAcquire);
        throw new GdxRuntimeException("#iterator() cannot be used nested.");
      }
      return queue.get(index++);
    }

代码示例来源:origin: libgdx/libgdx

/** Removes the first instance of the specified value in the queue.
 * @param identity If true, == comparison will be used. If false, .equals() comparison will be used.
 * @return true if value was found and removed, false otherwise */
public boolean removeValue (T value, boolean identity) {
  int index = indexOf(value, identity);
  if (index == -1) return false;
  removeIndex(index);
  return true;
}

代码示例来源:origin: libgdx/libgdx

@Test
public void toStringTest () {
  Queue<Integer> q = new Queue<Integer>(1);
  assertTrue(q.toString().equals("[]"));
  q.addLast(4);
  assertTrue(q.toString().equals("[4]"));
  q.addLast(5);
  q.addLast(6);
  q.addLast(7);
  assertTrue(q.toString().equals("[4, 5, 6, 7]"));
}

代码示例来源:origin: libgdx/libgdx

@Test
public void getTest () {
  final Queue<Integer> q = new Queue<Integer>(7);
  for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 4; j++) {
      q.addLast(j);
    }
    assertEquals("get(0) is not equal to peek (" + i + ")", q.get(0), q.first());
    assertEquals("get(size-1) is not equal to peekLast (" + i + ")", q.get(q.size - 1), q.last());
    for (int j = 0; j < 4; j++) {
      assertTrue(q.get(j) == j);
    }
    for (int j = 0; j < 4 - 1; j++) {
      q.removeFirst();
      assertEquals("get(0) is not equal to peek (" + i + ")", q.get(0), q.first());
    }
    q.removeFirst();
    assert q.size == 0; // Failing this means broken test
    try {
      q.get(0);
      fail("get() on empty queue did not throw");
    } catch (IndexOutOfBoundsException ignore) {
      // Expected
    }
  }
}

代码示例来源:origin: libgdx/libgdx

@Test
public void hashEqualsTest () {
  Queue<Integer> q1 = new Queue<Integer>();
  Queue<Integer> q2 = new Queue<Integer>();
  assertEqualsAndHash(q1, q2);
  q1.addFirst(1);
  assertNotEquals(q1, q2);
  q2.addFirst(1);
  assertEqualsAndHash(q1, q2);
  q1.clear();
  q1.addLast(1);
  q1.addLast(2);
  q2.addLast(2);
  assertEqualsAndHash(q1, q2);
  for (int i = 0; i < 100; i++) {
    q1.addLast(i);
    q1.addLast(i);
    q1.removeFirst();
    assertNotEquals(q1, q2);
    q2.addLast(i);
    q2.addLast(i);
    q2.removeFirst();
    assertEqualsAndHash(q1, q2);
  }
}

代码示例来源:origin: libgdx/libgdx

@Test
public void iteratorRemoveEdgeCaseTest() {//See #4300
  Queue<Integer> queue = new Queue<Integer>();
  //Simulate normal usage
  for(int i = 0; i < 100; i++) {
    queue.addLast(i);
    if(i > 50)
      queue.removeFirst();
  }
  Iterator<Integer> it = queue.iterator();
  while(it.hasNext()) {
    it.next();
    it.remove();
  }
  queue.addLast(1337);
  Integer i = queue.first();
  assertEquals(1337, (int)i);
}

代码示例来源:origin: libgdx/libgdx

@Test
public void removeFirstTest() {
  Queue<Integer> queue = new Queue<Integer>();
  queue.addLast(1);
  queue.addLast(2);
  queue.addLast(3);
  queue.addLast(4);
  assertEquals(4, queue.size);
  assertEquals(0, queue.indexOf(1, true));
  assertEquals(1, (Object)queue.removeFirst());
  assertEquals(3, queue.size);
  assertEquals(0, queue.indexOf(2, true));
  assertEquals(2, (Object)queue.removeFirst());
  assertEquals(2, queue.size);
  assertEquals(0, queue.indexOf(3, true));
  assertEquals(3, (Object)queue.removeFirst());
  assertEquals(1, queue.size);
  assertEquals(0, queue.indexOf(4, true));
  assertEquals(4, (Object)queue.removeFirst());
  assertEquals(0, queue.size);
}

代码示例来源:origin: libgdx/libgdx

@Test
public void resizableQueueTest () {
  final Queue<Integer> q = new Queue<Integer>(8);
        q.addLast(j);
      } catch (IllegalStateException e) {
        fail("Failed to add element " + j + " (" + i + ")");
      final Integer peeked = q.last();
      assertTrue("peekLast shows " + peeked + ", should be " + j + " (" + i + ")", peeked.equals(j));
      final int size = q.size;
      final Integer peek = q.first();
      assertTrue("First thing is not zero but " + peek + " (" + i + ")", peek == 0);
      final Integer pop = q.removeFirst();
      assertTrue("Popped should be " + j + " but is " + pop + " (" + i + ")", pop == j);
    q.addLast(42);
  q.clear();
  assertTrue("Clear did not clear properly", q.size == 0);

代码示例来源:origin: libgdx/libgdx

@Test
public void removeTest () {
  final Queue<Integer> q = new Queue<Integer>();
    q.addLast(j);
  assertValues(q, 0, 1, 2, 3, 4, 5, 6);
  q.removeIndex(0);
  assertValues(q, 1, 2, 3, 4, 5, 6);
  q.removeIndex(1);
  assertValues(q, 1, 3, 4, 5, 6);
  q.removeIndex(4);
  assertValues(q, 1, 3, 4, 5);
  q.removeIndex(2);
  assertValues(q, 1, 3, 5);
  q.clear();
  for (int j = 2; j >= 0; j--)
    q.addFirst(j);
  for (int j = 3; j <= 6; j++)
    q.addLast(j);
  assertValues(q, 0, 1, 2, 3, 4, 5, 6);
  q.removeIndex(1);
  assertValues(q, 0, 2, 3, 4, 5, 6);
  q.removeIndex(0);
  assertValues(q, 2, 3, 4, 5, 6);
  q.clear();
  for (int j = 2; j >= 0; j--)
    q.addFirst(j);
  for (int j = 3; j <= 6; j++)

代码示例来源:origin: libgdx/libgdx

Queue result = type == Queue.class ? new Queue() : (Queue)newInstance(type);
for (JsonValue child = jsonData.child; child != null; child = child.next)
  result.addLast(readValue(elementType, null, child));
return (T)result;

代码示例来源:origin: libgdx/libgdx

@Test
public void removeLastTest() {
  Queue<Integer> queue = new Queue<Integer>();
  queue.addLast(1);
  queue.addLast(2);
  queue.addLast(3);
  queue.addLast(4);
  assertEquals(4, queue.size);
  assertEquals(3, queue.indexOf(4, true));
  assertEquals(4, (Object)queue.removeLast());
  assertEquals(3, queue.size);
  assertEquals(2, queue.indexOf(3, true));
  assertEquals(3, (Object)queue.removeLast());
  assertEquals(2, queue.size);
  assertEquals(1, queue.indexOf(2, true));
  assertEquals(2, (Object)queue.removeLast());
  assertEquals(1, queue.size);
  assertEquals(0, queue.indexOf(1, true));
  assertEquals(1, (Object)queue.removeLast());
  assertEquals(0, queue.size);
}

代码示例来源:origin: de.golfgl.gdxgameanalytics/gdx-gameanalytics-core

private void addToWaitingQueue(AnnotatedEvent event) {
  while (waitingQueue.size > MAX_EVENTS_CACHED)
    waitingQueue.removeFirst();
  waitingQueue.addLast(event);
}

代码示例来源:origin: libgdx/libgdx

@Test
public void iteratorTest () {
  final Queue<Integer> q = new Queue<Integer>();
    q.addLast(j);
  Iterator<Integer> iter = q.iterator();
  for (int j = 0; j <= 6; j++)
    assertEquals(iter.next().intValue(), j);
  iter = q.iterator();
  iter.next();
  iter.remove();
  q.clear();
  for (int j = 2; j >= 0; j--)
    q.addFirst(j);
  for (int j = 3; j <= 6; j++)
    q.addLast(j);
  iter = q.iterator();
  for (int j = 0; j <= 6; j++)
    assertEquals(iter.next().intValue(), j);
  iter = q.iterator();
  iter.next();
  iter.remove();

代码示例来源:origin: de.golfgl.gdxgameanalytics/gdx-gameanalytics-core

sendingQueue.addLast(waitingQueue.removeFirst());
payload.append(json.toJson(sendingQueue.get(i)));
if (i != sendingQueue.size - 1)
  payload.append(",");

代码示例来源:origin: libgdx/libgdx

final Queue<Integer> q = new Queue<Integer>(8);
      q.addFirst(j);
    } catch (IllegalStateException e) {
      fail("Failed to add element " + j + " (" + i + ")");
    final Integer peeked = q.first();
    assertTrue("peek shows " + peeked + ", should be " + j + " (" + i + ")", peeked.equals(j));
    final int size = q.size;
    final Integer peek = q.last();
    assertTrue("Last thing is not zero but " + peek + " (" + i + ")", peek == 0);
    final Integer pop = q.removeLast();
    assertTrue("Popped should be " + j + " but is " + pop + " (" + i + ")", pop == j);
  q.addFirst(42);
q.clear();
assertTrue("Clear did not clear properly", q.size == 0);

代码示例来源:origin: libgdx/libgdx

/** Increases the size of the backing array to accommodate the specified number of additional items. Useful before adding many
 * items to avoid multiple backing array resizes. */
public void ensureCapacity (int additional) {
  final int needed = size + additional;
  if (values.length < needed) {
    resize(needed);
  }
}

代码示例来源:origin: libgdx/libgdx

public void remove () {
  if (!allowRemove) throw new GdxRuntimeException("Remove not allowed.");
  index--;
  queue.removeIndex(index);
}

代码示例来源:origin: de.golfgl.gdxgameanalytics/gdx-gameanalytics-core

@Override
public void handleHttpResponse(Net.HttpResponse httpResponse) {
  synchronized (waitingQueue) {
    sendingQueue.clear();
  }
  int statusCode = httpResponse.getStatus().getStatusCode();
  String resultAsString = httpResponse.getResultAsString();
  if (statusCode == 200)
    Gdx.app.debug(TAG, statusCode + " " + resultAsString);
  else
    Gdx.app.error(TAG, statusCode + " " + resultAsString);
  failedFlushAttempts = 0;
  flushingQueue = false;
}

代码示例来源:origin: libgdx/libgdx

Queue result = type == Queue.class ? new Queue() : (Queue)newInstance(type);
for (JsonValue child = jsonData.child; child != null; child = child.next)
  result.addLast(readValue(elementType, null, child));
return (T)result;

相关文章