43 votos

¿Cómo podría el código de una eficiente Búfer Circular en Java o C#

Quiero una simple clase que implementa un tamaño fijo búfer circular. Debe ser eficiente, fácil en los ojos, genéricamente escrito.

EDIT: no tiene Que ser MT-capaz, por ahora. Siempre se puede añadir un bloqueo más tarde, no será de alta concurrencia en cualquier caso.

Los métodos deben ser: .Agregar y, supongo .Lista, donde puedo ver todas las entradas. En el segundo pensamiento, la Recuperación, creo que debe ser hecho a través de un indizador. En cualquier momento me va a querer ser capaz de recuperar cualquier elemento en el búfer de índice. Pero ten en cuenta que de un momento a otro Elemento[n] puede ser diferente, ya que el buffer Circular llena y rollos de más.

Esto no es una pila, es un buffer circular. Con respecto a la "desbordamiento": yo esperaría que internamente no sería una matriz que almacena los elementos, y con el tiempo la cabeza y la cola del buffer va a girar en torno a que la matriz fija. Pero que debe ser invisible para el usuario. No debe haber ningún externamente perceptible "desbordamiento", evento o comportamiento.

Esto no es una tarea escolar - es más comúnmente va a ser utilizada por un MRU caché o un tamaño fijo de transacción o de registro de sucesos.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X