# Ringpuffer als Array in Java ;-)



## JimmyT (16. Jul 2008)

Hi,

könnt ihr mir Tipps geben oder Quellen nennen wo gezeigt wird, 
wie ein Ringpuffer in Java implementiert werden kann als Array (nicht als verkettete Liste).
Mit dazugehörigen Methoden (bspw. Element einfügen, Element löschen etc.).

Für jeden Tipp dankbar

gruß, jimmy


----------



## FArt (16. Jul 2008)

http://www.google.de/search?hl=de&q=java+ringpuffer&btnG=Google-Suche&meta=


----------



## diggaa1984 (16. Jul 2008)

Das ist im Prinzip doch gar net so schwer ...
Du musst nur wissen an welcher Stelle du als nächstes schreibst, an welcher stelle du grad ausgelesen hast, und der rest is einfach nur ein rumschieben dieser indizes.


----------



## Gelöschtes Mitglied 5909 (16. Jul 2008)

Ohne ein Limit find ich des ganz nice:


```
// LinkedRingList.java
// Project: util
// Author:  Liar
// 30.04.2008 21:16:25

package util.collection;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.NoSuchElementException;

/**
 * @author Liar
 */
public class LinkedRingList<E> extends LinkedList<E> {

	private static final long serialVersionUID = -25374615113953969L;


	/* (non-Javadoc)
	 * @see java.util.AbstractSequentialList#iterator()
	 */
	@Override
	public Iterator<E> iterator() {
		return new Iterator<E>() {

			Iterator<E> iter = LinkedRingList.this.listIterator();
			
			@Override
			public boolean hasNext() {
				return !LinkedRingList.this.isEmpty();
			}

			@Override
			public E next() {
				if (LinkedRingList.this.isEmpty()) {
					throw new NoSuchElementException();
				}
				if (!iter.hasNext()) {
					iter = LinkedRingList.this.listIterator();
				} 
				return iter.next();
			}

			@Override
			public void remove() {
				iter.remove();
			}
			
		};
	}
	
}
```


----------

