Java 类java.util.Queue 实例源码

项目:JavaStudy    文件:JDKQueue.java   
public void jdkQueue() {
    Queue<Integer> queue = new LinkedList<Integer>();
    PrinterUtils.printELog("队列大小:" + queue.size());

    Integer arr[] = {1, 2, 3, 4, 5};
    //队列里放元素
    for (int i : arr) {
        queue.offer(i);
    }
    PrinterUtils.printELog("队列大小:" + queue.size());

    //移除
    while (!queue.isEmpty()) {
        PrinterUtils.printELog(
                "队列头部元素:" + queue.peek() +
                        ",出队:" + queue.poll());
    }


}
项目:fresco_floodlight    文件:DeviceManagerImpl.java   
/**
* Send update notifications to listeners
* @param updates the updates to process.
*/
protected void processUpdates(Queue<DeviceUpdate> updates) {
if (updates == null) return;
DeviceUpdate update = null;
while (null != (update = updates.poll())) {
    if (logger.isTraceEnabled()) {
        logger.trace("Dispatching device update: {}", update);
    }
    if (update.change == DeviceUpdate.Change.DELETE) {
        deviceSyncManager.removeDevice(update.device);
    } else {
        deviceSyncManager.storeDevice(update.device);
    }
    List<IDeviceListener> listeners = deviceListeners.getOrderedListeners();
    notifyListeners(listeners, update);
}
}
项目:openjdk-jdk10    文件:ArrayDequeTest.java   
/**
 * A deserialized/reserialized deque has same elements in same order
 */
public void testSerialization() throws Exception {
    Queue x = populatedDeque(SIZE);
    Queue y = serialClone(x);

    assertNotSame(y, x);
    assertEquals(x.size(), y.size());
    assertEquals(x.toString(), y.toString());
    assertEquals(Arrays.toString(x.toArray()), Arrays.toString(y.toArray()));
    assertTrue(Arrays.equals(x.toArray(), y.toArray()));
    while (!x.isEmpty()) {
        assertFalse(y.isEmpty());
        assertEquals(x.remove(), y.remove());
    }
    assertTrue(y.isEmpty());
}
项目:vertx-ssdb    文件:CompositeClient.java   
void sendCommand(Handler<AsyncResult<Queue<byte[]>>> handler, String key, Object... params)
{
    if (batches != null) {
        batches.add(new BatchCommand(key, params, handler));
        return;
    }

    switch (status) {
        case Normal:
            connecter.tryGetConnection(F.ofSucceededVoid(handler, conn -> conn.execute(key, params, handler)));
            break;
        case Once:
            connecter.tryGetConnection(F.ofSucceededVoid(handler, conn -> conn.execute(key, params, F.ofSucceeded(handler, () -> {
                status = Status.Unusable;
                vertx.runOnContext(event -> close(F.noneHandle()));
            }, queue -> queue))));
            break;
        case Unusable:
            handler.handle(F.failedFuture(new SSDBClosedException()));
            break;
    }
}
项目:JRediClients    文件:PubSubConnectionEntry.java   
public boolean removeListener(String channelName, EventListener msgListener) {
    Queue<RedisPubSubListener<?>> listeners = channelListeners.get(channelName);
    for (RedisPubSubListener<?> listener : listeners) {
        if (listener instanceof PubSubMessageListener) {
            if (((PubSubMessageListener)listener).getListener() == msgListener) {
                removeListener(channelName, listener);
                return true;
            }
        }
        if (listener instanceof PubSubPatternMessageListener) {
            if (((PubSubPatternMessageListener)listener).getListener() == msgListener) {
                removeListener(channelName, listener);
                return true;
            }
        }
    }
    return false;
}
项目:Nird2    文件:ValidationManagerImpl.java   
@ValidationExecutor
private void validateMessage(Message m, Group g) {
    MessageValidator v = validators.get(g.getClientId());
    if (v == null) {
        if (LOG.isLoggable(WARNING))
            LOG.warning("No validator for " + g.getClientId().getString());
    } else {
        try {
            MessageContext context = v.validateMessage(m, g);
            storeMessageContextAsync(m, g.getClientId(), context);
        } catch (InvalidMessageException e) {
            if (LOG.isLoggable(INFO))
                LOG.log(INFO, e.toString(), e);
            Queue<MessageId> invalidate = new LinkedList<MessageId>();
            invalidate.add(m.getId());
            invalidateNextMessageAsync(invalidate);
        }
    }
}
项目:advent-of-code-2017    文件:Day12.java   
private static List<Integer> createConnectedComponent(HashMap<Integer, List<Integer>> graph, int root) {

    Queue<Integer> q = new ArrayDeque<>(); // next nodes to visit
    List<Integer> visited = new ArrayList<>(); // connected component so far
    q.add(root); // init queue

    while (!q.isEmpty()) {
        Integer poll = q.poll(); // get next node
        if (!visited.contains(poll)) { // if it's not already visited
            visited.add(poll); // visit it
            q.addAll(graph.get(poll)); // and put its neighbourhood in the queue
        }
    }
    visited.forEach(v -> graph.remove(v)); // removes the connected component from the graph
    return visited;

}
项目:SimpleCalculator    文件:ParseStrategyImpl.java   
@Override
public void parseTokensToValuesAndOperations(int j, String token, Queue<Float> values, Queue<String> operations) {
    switch (token) {
        case PLUS_CHAR:
        case MINUS_CHAR:
            // adding 0 as a first value when nothing before to start with a pair of values
            if (j == 0) {
                values.add(0f);
            }
            operations.add(token);
            break;
        default:
            values.add(Float.parseFloat(token));
            break;
    }
}
项目:APCSAB    文件:ZhuZhiyu_Period1_BinaryTreeLab.java   
public static int width(TreeNode t) {
    int maxWdith = 0, levelWidth = 0;
    Queue<TreeNode> q = new LinkedList<>();
    q.add(t);
    q.add(null);
    while (!q.isEmpty()) {
        if (null == (t = q.poll())) {
            if (levelWidth > maxWdith)
                maxWdith = levelWidth;
            levelWidth = 0;
            if (null != q.peek()) q.add(null);
        } else {
            levelWidth++;
            if (null != t.getLeft()) q.add(t.getLeft());
            if (null != t.getRight()) q.add(t.getRight());
        }
    }
    return maxWdith;
}
项目:UF-CPP    文件:HV_CourseSchedule.java   
public Set<Vertex> topologicalSort(Vertex startNode,Set<Vertex> set){
    Queue<Vertex> queue=new LinkedList<>();
    queue.add(startNode);

    while(!queue.isEmpty()){
        Vertex u=queue.poll();
        set.add(u);
        for(Vertex v : u.adjacents)
        {
            if(!set.contains(v)){
            v.inDegree--;
            if(v.inDegree==0)
                queue.add(v);
            }
            else
                return new HashSet<Vertex>();
        }
    }

    return set;

}
项目:openjdk-jdk10    文件:ConcurrentQueueLoops.java   
void test(final Queue<Integer> q) throws Throwable {
     System.out.println(q.getClass().getSimpleName());
     pool = Executors.newCachedThreadPool();
     print = false;

     print = false;
     System.out.println("Warmup...");
     oneRun(1, items, q);
     oneRun(3, items, q);
     print = true;

     for (int i = 1; i <= maxStages; i += (i+1) >>> 1) {
         oneRun(i, items, q);
     }
     pool.shutdown();
     check(pool.awaitTermination(LONG_DELAY_MS, MILLISECONDS));
}
项目:jdk8u-jdk    文件:RemovePollRace.java   
Collection<Queue<Boolean>> concurrentQueues() {
    List<Queue<Boolean>> queues = new ArrayList<Queue<Boolean>>();
    queues.add(new ConcurrentLinkedDeque<Boolean>());
    queues.add(new ConcurrentLinkedQueue<Boolean>());
    queues.add(new ArrayBlockingQueue<Boolean>(count, false));
    queues.add(new ArrayBlockingQueue<Boolean>(count, true));
    queues.add(new LinkedBlockingQueue<Boolean>());
    queues.add(new LinkedBlockingDeque<Boolean>());
    queues.add(new LinkedTransferQueue<Boolean>());

    // Following additional implementations are available from:
    // http://gee.cs.oswego.edu/dl/concurrency-interest/index.html
    // queues.add(new SynchronizedLinkedListQueue<Boolean>());

    // Avoid "first fast, second slow" benchmark effect.
    Collections.shuffle(queues);
    return queues;
}
项目:Jupiter    文件:Level.java   
private void computeSpreadBlockLight(int x, int y, int z, int currentLight, Queue<Vector3> queue,
                                     Map<BlockVector3, Boolean> visited) {
    int current = this.getBlockLightAt(x, y, z);
    BlockVector3 index = Level.blockHash(x, y, z);

    if (current < currentLight) {
        this.setBlockLightAt(x, y, z, currentLight);

        if (!visited.containsKey(index)) {
            visited.put(index, true);
            if (currentLight > 1) {
                queue.add(new Vector3(x, y, z));
            }
        }
    }
}
项目:mao-android    文件:DsFragment.java   
void traverse(Node root) {
    Queue<Node> layer = new LinkedList<>();
    layer.offer(root);
    while (!layer.isEmpty()) {
        Queue<Node> nextLayer = new LinkedList<>();
        Node node = layer.poll();
        while (node != null) {
            System.out.println(node.name);
            if (node.left != null) {
                nextLayer.offer(node.left);
            }
            if (node.right != null) {
                nextLayer.offer(node.right);
            }
            node = layer.poll();
        }
        layer = nextLayer;
    }
}
项目:unitimes    文件:CurriculaCourseDemands.java   
protected void computeTargetShare(int nrStudents, Collection<CurriculumCourse> courses, CurriculumCourseGroupsProvider course2groups, CurModel model) {
    for (CurriculumCourse c1: courses) {
        float x1 = c1.getPercShare() * nrStudents;
        Set<CurriculumCourse>[] group = new HashSet[] { new HashSet<CurriculumCourse>(), new HashSet<CurriculumCourse>()};
        Queue<CurriculumCourse> queue = new LinkedList<CurriculumCourse>();
        queue.add(c1);
        Set<CurriculumCourseGroup> done = new HashSet<CurriculumCourseGroup>();
        while (!queue.isEmpty()) {
            CurriculumCourse c = queue.poll();
            for (CurriculumCourseGroup g: course2groups.getGroups(c))
                if (done.add(g))
                    for (CurriculumCourse x: courses)
                        if (!x.equals(c) && !x.equals(c1) && course2groups.getGroups(x).contains(g) && group[group[0].contains(c) ? 0 : g.getType()].add(x))
                            queue.add(x);
        }
        for (CurriculumCourse c2: courses) {
            float x2 = c2.getPercShare() * nrStudents;
            if (c1.getUniqueId() >= c2.getUniqueId()) continue;
            float share = c1.getPercShare() * c2.getPercShare() * nrStudents;
            boolean opt = group[0].contains(c2);
            boolean req = !opt && group[1].contains(c2);
            model.setTargetShare(c1.getUniqueId(), c2.getUniqueId(), opt ? 0.0 : req ? Math.min(x1, x2) : share, true);
        }
    }
}
项目:hadoop-oss    文件:DirectBufferPool.java   
/**
 * Allocate a direct buffer of the specified size, in bytes.
 * If a pooled buffer is available, returns that. Otherwise
 * allocates a new one.
 */
public ByteBuffer getBuffer(int size) {
  Queue<WeakReference<ByteBuffer>> list = buffersBySize.get(size);
  if (list == null) {
    // no available buffers for this size
    return ByteBuffer.allocateDirect(size);
  }

  WeakReference<ByteBuffer> ref;
  while ((ref = list.poll()) != null) {
    ByteBuffer b = ref.get();
    if (b != null) {
      return b;
    }
  }

  return ByteBuffer.allocateDirect(size);
}
项目:BestPracticeApp    文件:N23_PrintBinaryTree.java   
private static void print(Tree tree) {
    Queue<Tree.Node> queue = new LinkedList<>();
    Tree.Node root = tree.root;

    queue.add(root);
    while (!queue.isEmpty()) {
        Tree.Node poll = queue.poll();
        if (poll.left != null) {
            queue.add(poll.left);
        }
        if (poll.right != null) {
            queue.add(poll.right);
        }

        System.out.println(poll.value);

    }

}
项目:APacheSynapseSimplePOC    文件:CommonsCollections2.java   
public Queue<Object> getObject(final String command) throws Exception {
    final Object templates = Gadgets.createTemplatesImpl(command);
    // mock method name until armed
    final InvokerTransformer transformer = new InvokerTransformer("toString", new Class[0], new Object[0]);

    // create queue with numbers and basic comparator
    final PriorityQueue<Object> queue = new PriorityQueue<Object>(2,new TransformingComparator(transformer));
    // stub data for replacement later
    queue.add(1);
    queue.add(1);

    // switch method called by comparator
    Reflections.setFieldValue(transformer, "iMethodName", "newTransformer");

    // switch contents of queue
    final Object[] queueArray = (Object[]) Reflections.getFieldValue(queue, "queue");
    queueArray[0] = templates;
    queueArray[1] = 1;

    return queue;
}
项目:twister2    文件:MPIDataFlowOperationMemoryMapped.java   
/**
 * Setup the receives and send sendBuffers
 */
protected void setupCommunication() {
  // we will receive from these
  int maxReceiveBuffers = MPIContext.receiveBufferCount(config);
  int receiveBufferSize = MPIContext.bufferSize(config);
  for (Integer recv : receivingExecutors) {
    Queue<MPIBuffer> recvList = new LinkedList<>();
    for (int i = 0; i < maxReceiveBuffers; i++) {
      recvList.add(new MPIBuffer(receiveBufferSize));
    }
    // register with the channel
    LOG.info(instancePlan.getThisExecutor() + " Register to receive from: " + recv);
    channel.receiveMessage(recv, edge, this, recvList);
    receiveBuffers.put(recv, recvList);
  }

  // configure the send sendBuffers
  int sendBufferSize = MPIContext.bufferSize(config);
  int sendBufferCount = MPIContext.sendBuffersCount(config);
  for (int i = 0; i < sendBufferCount; i++) {
    MPIBuffer buffer = new MPIBuffer(sendBufferSize);
    sendBuffers.offer(buffer);
  }
}
项目:marshalsec    文件:JDKUtil.java   
@SuppressWarnings ( {
    "rawtypes", "unchecked"
} )
public static Queue<Object> makePriorityQueue ( Object tgt, Comparator comparator ) throws Exception {
    // create queue with numbers and basic comparator
    final PriorityQueue<Object> queue = new PriorityQueue<>(2, comparator);
    // stub data for replacement later
    queue.add(new BigInteger("1"));
    queue.add(new BigInteger("1"));

    // switch contents of queue
    final Object[] queueArray = (Object[]) Reflections.getFieldValue(queue, "queue");
    queueArray[ 0 ] = tgt;
    queueArray[ 1 ] = tgt;

    return queue;
}
项目:smile_1.5.0_java7    文件:AdjacencyList.java   
/**
 * Breadth-first search of graph.
 * @param v the start vertex.
 * @param cc the array to store the connected component id of vertices.
 * @param id the current component id.
 */
private void bfs(Visitor visitor, int v, int[] cc, int id) {
    visitor.visit(v);
    cc[v] = id;
    Queue<Integer> queue = new LinkedList<>();
    queue.offer(v);
    while (!queue.isEmpty()) {
        int t = queue.poll();
        for (Edge edge : graph[t]) {
            int i = edge.v2;
            if (!digraph && i == t) {
                i = edge.v1;
            }

            if (cc[i] == -1) {
                visitor.visit(i);
                queue.offer(i);
                cc[i] = id;
            }
        }
    }
}
项目:spark-dependencies    文件:TreeGenerator.java   
private void generateDescendants(Queue<Node> queue, int numOfNodes, final int maxNumberOfDescendants) {
  if (numOfNodes <= 0) {
    return;
  }

  Node parent = queue.poll();
  if (parent == null) {
    return;
  }
  for (int i = 0; i < maxNumberOfDescendants; i++) {
    Node descendant = new Node(tracers.get(tracersRandom.nextInt(tracers.size())).tracingWrapper(), parent);
    queue.add(descendant);
    if (--numOfNodes <= 0) {
      return;
    }
  }
  generateDescendants(queue, numOfNodes, maxNumberOfDescendants);
}
项目:boohee_v5.6    文件:OperatorGroupBy.java   
private void emitItem(GroupState<K, T> groupState, Object item) {
    Queue<Object> q = groupState.buffer;
    AtomicLong keyRequested = groupState.requested;
    REQUESTED.decrementAndGet(this);
    if (keyRequested == null || keyRequested.get() <= 0 || !(q == null || q.isEmpty())) {
        q.add(item);
        BUFFERED_COUNT.incrementAndGet(this);
        if (groupState.count.getAndIncrement() == 0) {
            pollQueue(groupState);
        }
    } else {
        nl.accept(groupState.getObserver(), item);
        if (keyRequested.get() != Long.MAX_VALUE) {
            keyRequested.decrementAndGet();
        }
    }
    requestMoreIfNecessary();
}
项目:JavaEvents    文件:EventManager.java   
public <E> void registerEventWithHandler(Class<E> eventClass, IEventHandler<?> handler){
    synchronized (EVENT_LISTENERS) {
        if(!EVENT_LISTENERS.containsKey(eventClass)){
            EVENT_LISTENERS.put(eventClass, new EventListenerCenter(handler, eventClass));
            synchronized (QUEUED_LISTENERS) {
                if(QUEUED_LISTENERS.containsKey(eventClass)){
                    Queue<?> queue = QUEUED_LISTENERS.get(eventClass);
                    for (Object object : queue) {
                        EVENT_LISTENERS.get(eventClass).add(object);
                    }
                    QUEUED_LISTENERS.remove(eventClass);
                }   
            }
        }   
    }
}
项目:JavaEvents    文件:EventManager.java   
public <L> void registerToInterface(Class<L> interfaceClass, L listener) throws WrongListenerTypeException{
    synchronized (EVENT_THROWERS) {
        if(EVENT_THROWERS.containsKey(interfaceClass)){
            LinkedHashSet<IEventThrower<?>> list = EVENT_THROWERS.get(interfaceClass);
            for (IEventThrower<?> iEventThrower : list) {
                @SuppressWarnings("unchecked")
                IEventThrower<L> thrower = (IEventThrower<L>) iEventThrower;
                try{
                    thrower.subscribe(listener);
                }catch(ClassCastException e){
                    throw new WrongListenerTypeException();
                }   
            }
        }else{
            if(QUEUED_LISTENERS.containsKey(interfaceClass)){
                QUEUED_LISTENERS.get(interfaceClass).add(listener);
            }else{
                Queue<Object> queue = new ArrayDeque<>();
                queue.add(listener);
                QUEUED_LISTENERS.put(interfaceClass, queue);
            }
        }
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:TestWebSocketFrameClient.java   
public void echoTester(String path) throws Exception {
    WebSocketContainer wsContainer =
            ContainerProvider.getWebSocketContainer();
    ClientEndpointConfig clientEndpointConfig =
            ClientEndpointConfig.Builder.create().build();
    Session wsSession = wsContainer.connectToServer(
            TesterProgrammaticEndpoint.class,
            clientEndpointConfig,
            new URI("ws://localhost:" + getPort() + path));
    CountDownLatch latch =
            new CountDownLatch(1);
    BasicText handler = new BasicText(latch);
    wsSession.addMessageHandler(handler);
    wsSession.getBasicRemote().sendText("Hello");

    boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
    Assert.assertTrue(latchResult);

    Queue<String> messages = handler.getMessages();
    Assert.assertEquals(1, messages.size());
    for (String message : messages) {
        Assert.assertEquals("Hello", message);
    }
    wsSession.close();
}
项目:MalmoAgent    文件:MoveTo.java   
public void addChild(float x, float z, Observations obs, Map<Position, Position> map, Queue<Position> nextPos, Position currentPosition) {
    if (isFree(x, z, obs)) {
        Position child = new Position(x, z);
        if (!map.containsKey(child)) {
            map.put(child, currentPosition);
            nextPos.add(child);
        }
    }
}
项目:storm-dynamic-spout    文件:DefaultRetryManagerTest.java   
private void validateTupleNotInFailedSetButIsInFlight(DefaultRetryManager retryManager, MessageId messageId) {
    // Loop through all failed tuples
    for (Long key : retryManager.getFailedMessageIds().keySet()) {
        Queue queue = retryManager.getFailedMessageIds().get(key);
        assertFalse("Should not contain our messageId", queue.contains(messageId));
    }
    assertTrue("Should be tracked as in flight", retryManager.getRetriesInFlight().contains(messageId));
}
项目:game-executor    文件:BindingUpdateThread.java   
public BindingUpdateThread(BindThreadUpdateExecutorService bindThreadUpdateExecutorService, DispatchThread dispatchThread, Queue<IUpdate> iUpdates, BlockingQueue<IUpdate> fetchUpdates) {
    super(dispatchThread, dispatchThread.getEventBus());
    this.bindThreadUpdateExecutorService = bindThreadUpdateExecutorService;
    this.iUpdates = iUpdates;
    this.fetchUpdates = fetchUpdates;
    this.finishList = new ArrayList<IUpdate>();
}
项目:googles-monorepo-demo    文件:TestsForQueuesInJavaUtil.java   
public Test testsForArrayBlockingQueue() {
  return QueueTestSuiteBuilder.using(
          new TestStringQueueGenerator() {
            @Override
            public Queue<String> create(String[] elements) {
              return new ArrayBlockingQueue<String>(100, false, MinimalCollection.of(elements));
            }
          })
      .named("ArrayBlockingQueue")
      .withFeatures(
          CollectionFeature.GENERAL_PURPOSE, CollectionFeature.KNOWN_ORDER, CollectionSize.ANY)
      .suppressing(suppressForArrayBlockingQueue())
      .createTestSuite();
}
项目:Fatigue-Detection    文件:GPUImageRenderer.java   
void runAll(Queue<CmdItem> queue) {
    synchronized (queue) {
        while (!queue.isEmpty()) {
            CmdItem cmdItem = queue.poll();

            switch (cmdItem.cmdId) {
                case CMD_PROCESS_FRAME:
                    processFrame((byte[]) cmdItem.param1, (Camera) cmdItem.param2);
                    break;
                case CMD_SETUP_SURFACE_TEXTURE:
                    setUpSurfaceTextureInternal((Camera) cmdItem.param1, (byte[]) cmdItem.param2);
                    break;
                case CMD_SET_FILTER:
                    setFilterInternal((GPUImageFilterGroupBase) cmdItem.param1);
                    break;
                case CMD_RERUN_ONDRAW_RUNNABLE:
                    ((Runnable) cmdItem.param1).run();
                    break;
                case CMD_RERUN_DRAWEND_RUNNABLE:
                    ((Runnable) cmdItem.param1).run();
                    break;
                default:
                    throw new RuntimeException("can't find command");
            }

            cmdItem.param1 = cmdItem.param2 = null;
            mCmdItemCacher.cache(cmdItem);
        }
    }
}
项目:class-code    文件:BinaryTree.java   
public void bfTraverse() {
    Queue<Node> q = new LinkedList<Node>();
    q.add(r);
    while (!q.isEmpty()) {
        Node u = q.remove();
        if (u.left != nil) q.add(u.left);
        if (u.right != nil) q.add(u.right);
    }
}
项目:monarch    文件:PartitionedRegionQueryEvaluatorTest.java   
public ExtendedPartitionedRegionQueryEvaluator(InternalDistributedSystem sys,
    PartitionedRegion pr, DefaultQuery query, Object[] parameters,
    SelectResults cumulativeResults, Set<Integer> bucketsToQuery,
    Queue<PartitionedQueryScenario> scenarios) {
  super(sys, pr, query, parameters, cumulativeResults, bucketsToQuery);
  this.scenarios = scenarios;
  extendedPRQueryProcessor =
      new ExtendedPRQueryProcessor(pr, query, null, new LinkedList(bucketsToQuery));
}
项目:kheera-testrunner-android    文件:Parser.java   
private boolean lookahead_0(ParserContext context, Token currentToken) {
    currentToken.detach();
    Token token;
    Queue<Token> queue = new ArrayDeque<Token>();
    boolean match = false;
    do
    {
        token = readToken(context);
        token.detach();
        queue.add(token);

        if (false
            || match_ExamplesLine(context, token)
        )
        {
            match = true;
            break;
        }
    } while (false
        || match_Empty(context, token)
        || match_Comment(context, token)
        || match_TagLine(context, token)
    );

    context.tokenQueue.addAll(queue);

    return match;
}
项目:GitHub    文件:RequestQueue.java   
/**
 * Called from {@link Request#finish(String)}, indicating that processing of the given request
 * has finished.
 *
 * <p>Releases waiting requests for <code>request.getCacheKey()</code> if
 *      <code>request.shouldCache()</code>.</p>
 */
<T> void finish(Request<T> request) {
    // Remove from the set of requests currently being processed.
    synchronized (mCurrentRequests) {
        mCurrentRequests.remove(request);
    }
    synchronized (mFinishedListeners) {
      for (RequestFinishedListener<T> listener : mFinishedListeners) {
        listener.onRequestFinished(request);
      }
    }

    if (request.shouldCache()) {
        synchronized (mWaitingRequests) {
            String cacheKey = request.getCacheKey();
            Queue<Request<?>> waitingRequests = mWaitingRequests.remove(cacheKey);
            if (waitingRequests != null) {
                if (VolleyLog.DEBUG) {
                    VolleyLog.v("Releasing %d waiting requests for cacheKey=%s.",
                            waitingRequests.size(), cacheKey);
                }
                // Process all queued up requests. They won't be considered as in flight, but
                // that's not a problem as the cache has been primed by 'request'.
                mCacheQueue.addAll(waitingRequests);
            }
        }
    }
}
项目:Java-9-Programming-Blueprints    文件:DateCalcExpressionParserTest.java   
@Test
public void nowWithoutSpacesAndTime() {
    Queue<Token> words = parser.parse("now+03:04");
    Assert.assertTrue(words.poll() instanceof TimeToken);
    Assert.assertTrue(words.poll() instanceof OperatorToken);
    Assert.assertTrue(words.poll() instanceof TimeToken);
}
项目:GitHub    文件:FunGameBattleCityHeader.java   
/**
 * 绘制三条轨道上的敌方坦克
 * @param canvas 默认画布
 */
private void drawEnemyTank(Canvas canvas, int width) {
    mPaint.setColor(lModelColor);
    offsetETankX += enemySpeed;
    if (offsetETankX / enemyTankSpace == 1 || once) {
        offsetETankX = 0;
        once = false;
    }

    boolean isOverstep = false;
    int option = apperanceOption();
    for (int i = 0; i < TANK_ROW_NUM; i++) {
        Queue<RectF> rectFQueue = eTankSparseArray.get(i);

        if (offsetETankX == 0 && i == option) {
            rectFQueue.offer(generateEnemyTank(i));
        }

        for (RectF rectF : rectFQueue) {
            if (rectF.left >= width) {
                isOverstep = true;
                if (++overstepNum >= DEFAULT_TANK_MAGIC_TOTAL_NUM) {
                    status = STATUS_GAME_OVER;
                    break;
                }
                continue;
            }
            drawTank(canvas, rectF);
        }

        if (status == STATUS_GAME_OVER) break;
        if (isOverstep) {
            rectFQueue.poll();
            isOverstep = false;
        }
    }
    invalidate();
}
项目:openjdk-jdk10    文件:ConcurrentLinkedDequeTest.java   
/**
 * A deserialized/reserialized deque has same elements in same order
 */
public void testSerialization() throws Exception {
    Queue x = populatedDeque(SIZE);
    Queue y = serialClone(x);

    assertNotSame(x, y);
    assertEquals(x.size(), y.size());
    assertEquals(x.toString(), y.toString());
    assertTrue(Arrays.equals(x.toArray(), y.toArray()));
    while (!x.isEmpty()) {
        assertFalse(y.isEmpty());
        assertEquals(x.remove(), y.remove());
    }
    assertTrue(y.isEmpty());
}
项目:Nird2    文件:ValidationManagerImpl.java   
@DatabaseExecutor
private Queue<MessageId> getPendingDependents(Transaction txn, MessageId m)
        throws DbException {
    Queue<MessageId> pending = new LinkedList<MessageId>();
    Map<MessageId, State> states = db.getMessageDependents(txn, m);
    for (Entry<MessageId, State> e : states.entrySet()) {
        if (e.getValue() == PENDING) pending.add(e.getKey());
    }
    return pending;
}
项目:voogasalad-ltub    文件:PathCreator.java   
private void targetSetOnMouseDragged(ScreenMap target, MouseEvent e, Queue<GamePoint> newPath) {
    Point2D point = target.sceneToLocal(e.getSceneX(), e.getSceneY());
    double mouseX = point.getX();
    double mouseY = point.getY();
    GamePoint coords = target.getCoordOfMouseHover(mouseX, mouseY);
    GamePoint actualGameLocation = target.getActualLocationOfSprite(coords);
    if (!coordAlreadyInPath(actualGameLocation, newPath)) {
        newPath.add(actualGameLocation);
        target.addBorderToCoordinate(coords);
    }

    e.consume();
}