First In – First Out
First In - First Out (engl. "zuerst herein - zuerst hinaus"), häufig akronymisiert zu FIFO bezeichnet jegliche Verfahren der Speicherung, bei denen diejenigen Elemente, die zuerst gespeichert wurden, auch zuerst wieder aus dem Speicher entnommen werden. Das gegenteilige Prinzip wird als Last In - First Out-Verfahren (LIFO) bezeichnet.
Im Bereich der Warenwirtschaft ist FIFO das übliche Verfahren, da die - von der Warte des Periodenendes gesehen - ältesten (zuerst gelagerten) Bestände auch nach Möglichkeit zuerst verbraucht werden sollten. Ausnahmen bestehen beispielsweise bei der Lagerung von Schüttgütern in Halden, die nur wieder von oben abgetragen werden können, also nach dem LIFO-Verfahren betrachtet werden. Der Unterschied zwischen beiden Verfahren ist insbesondere für die Bestandsbewertung relevant; bis auf wenige Ausnahmen (u.a. die oben genannte) ist in Deutschland die Bewertung nach dem FIFO-Prinzip für die bilanzielle Bewertung der Bestände anzuwenden.
In der Informatik eine spezielle Art, Daten abzulegen und wieder abzurufen. Die Warteschlange (engl. Queue) in der Informatik beruht auf dem FIFO Prinzip. Elemente werden in genau der Reihenfolge abgerufen, in der sie zuvor abgelegt wurden. LIFO-Speicher werden in der Informatik als Stack oder Kellerspeicher bezeichnet.
FIFO-Darstellung
Java Code
public class Fifo { private Object[] fifo; private int index; public Fifo() { fifo = new Object[10]; index = 0; } public Fifo(int anzahl) { fifo = new Object[anzahl]; index = 0; } public Object pop() throws Exception { if(index < 1) throw new Exception("FIFO leer!"); Object res = fifo[0]; for(int i = 0; i < index-1; i++ ) { fifo[i] = fifo[i+1]; } index--; return res; } public void push(Object obj) throws Exception { if(index >= fifo.length) throw new Exception("Fifo voll"); fifo[index] = obj; index++; } }