Estoy trabajando (en Java) en un algoritmo de procesamiento de imágenes recursivas que atraviesa recursivamente los píxeles de la imagen, hacia afuera desde un punto central.¿Mejor implementación de Java Queue?
Desafortunadamente, eso causa un desbordamiento de la pila. Así que he decidido cambiar a un algoritmo basado en cola.
Ahora, todo está bien, pero teniendo en cuenta que se trata de cola, se analizarán MILES de píxeles en un período de tiempo muy corto, mientras se estacionan y empujan constantemente, SIN mantener un estado predecible (Podría estar en cualquier parte entre la longitud 100 y 20000); La implementación de la cola necesita tener habilidades de estallido y empuje significativamente rápidas.
Una lista vinculada parece atractiva debido a su capacidad de empujar elementos hacia sí misma sin reorganizar nada más en la lista, pero para que sea lo suficientemente rápida, necesitaría un fácil acceso tanto a su cabeza, como a su cola (o penúltimo nodo si no estuviera doblemente vinculado). Tristemente, aunque no puedo encontrar ninguna información relacionada con la implementación subyacente de listas enlazadas en Java, entonces es difícil decir si una lista vinculada es realmente el camino a seguir ...
Esto me lleva a mi pregunta. ¿Cuál sería la mejor implementación de la interfaz Queue en Java para lo que pretendo hacer? (No deseo editar ni siquiera acceder a nada que no sea la cabeza y la cola de la cola, no deseo hacer ningún tipo de reorganización ni nada. Por otro lado, ESTOY intentando hacer un montón de empujones y apareciendo, y la cola cambiará de tamaño un poco, por lo que la asignación previa sería ineficiente)
Tal vez necesite dar un paso atrás y pensar si hay una manera mejor que empujar miles de píxeles individuales uno por uno en una estructura de datos (si eso es lo que está haciendo). – Thilo
Es un algoritmo de detección de blobs, la idea es que comience desde un punto en el blob y se desplace hacia afuera hasta el borde del blob. No creo que haya otra forma (simple) de hacer esto. Además, la cola solo almacena puntos de interés: en realidad, no mantiene los píxeles en la cola, la cola principalmente sirve como una forma de mantener un registro de dónde se encuentra. De forma similar a muchos algoritmos de identificación de ruta –