DelayQueue con capacidad

Estoy usando un DelayQueue. Necesito usar esto para tomar solo de la cola cuando haya pasado un retraso. También quiero imponer una capacidad, como un BlockingQueue. Parece que no puedo encontrar una implementación de Colecciones de esto. ¿Existe uno? Si no, ¿cuál es la mejor manera de implementarlo? Un enfoque básico sería hacer algo como esto:

public void addSomethingToQueue(Object somethingToAdd){
    int capacity = 4;

    while(queue.size() >= capacity){
        try{
            wait();
        }catch(InterruptedException e){
            e.printStackTrace();
        }
    }

    queue.add(somethingToAdd);
}

Esto significaría llamar a notify / notifyAll cada vez que se elimina algo. Es una clase bastante pequeña, así que es factible. Sin embargo, no suena genial. ¿Y no estoy seguro de si la espera / notificación puede causar más problemas?

¿Sería mejor subclasificar DelayQueue y perder el tiempo con sus métodos? Se siente un poco dudoso ...

Respuesta 1

Estoy tratando de escribir un método que tome una Cadena, busque Ints en ella y luego las agregue. por ejemplo: String s = "five5six66" debería devolver 5 + 66 = 71 o: String s = "...

Quiero establecer la fecha y la hora en mi aplicación de Android. La fecha debe ser la fecha de hoy, pero la hora debe establecerse a las 6:00 a.m. de forma predeterminada en el campo de texto. He leído muchos enlaces, pero la mayoría de ellos muestra hoy ...

Estoy construyendo una función genérica que recibe un RDD y hace algunos cálculos al respecto. Como ejecuto más de un cálculo en el RDD de entrada, me gustaría almacenarlo en caché. Por ejemplo: public JavaRDD <...

Por el momento, conozco cuatro tipos de transacciones con hibernación: Uso de objetos Uso de HQL Uso de SQL específico de DB Uso de criterios (QBE) Bueno, con respecto a cuán fuertes son contra las inyecciones, yo ...