Java Queue Usage pollWhileNotEmpty(Queue queue)

Here you can find the source of pollWhileNotEmpty(Queue queue)

Description

Certain types of queues will return null when calling java.util.Queue#poll() due to many factors depending on the type of queue.

License

Apache License

Parameter

Parameter Description
queue queue to read the entry from
T type

Return

result

Declaration

public static <T> T pollWhileNotEmpty(Queue<T> queue) 

Method Source Code

//package com.java2s;
/*/*from   w  ww .  j  av a 2s. c  om*/
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import java.util.Queue;

public class Main {
    /**
     * Certain types of queues will return null when calling {@link java.util.Queue#poll()} due to many factors depending
     * on the type of queue.  <code>pollWhileNotEmpty</code> will poll the queue until an item from the queue is returned
     * or the queue is empty.  If the queue is empty it will return NULL.
     * @param queue queue to read the entry from
     * @param <T> type
     * @return result
     */
    public static <T> T pollWhileNotEmpty(Queue<T> queue) {
        T item = queue.poll();
        while (!queue.isEmpty() && item == null) {
            Thread.yield();
            item = queue.poll();
        }
        return item;
    }
}

Related

  1. isListBased(Class type)
  2. isQueue(final Object value, final boolean acceptNull)
  3. loadBalancingLeftHeavy(List tasks, int size)
  4. offerUntilSuccess(T entry, Queue queue)
  5. parsePathToStack(String path)
  6. queue(final Queue queue, final Object o, final Class clazz, final boolean removeNull)
  7. randomizeIndex(char[] array)
  8. scramble(Object object)
  9. setQueueValue(final Queue queue, final Object obj, final Class clazz, final boolean removeNull)