Legg til først: ny.neste = forste; if (forste != null) forste.forrige = ny; forste = ny; if (siste == null) siste = ny;
•Ta ut (toveis), del 1: if (ut.forrige == null) forste = ut.neste; else ut.forrige.neste = ut.neste;•Ta ut (toveis), del 2: if (ut.neste == null) siste = ut.forrige; else ut.neste.forrige = ut.forrige;•Sett inn foran: ny.neste = gammel; ny.forrige = gammel.forrige; if (gammel.forrige == null) forste = ny; else gammel.forrige.neste = ny; gammel.forrige = ny;•Gjennomløping: for (T p = forste; p != null; p = p.neste) { ... }•Sammenlign identifikatorer med equals, aldri med ==•Innsetting først: ny.neste = forste; if (forste != null) forste.forrige = ny; forste = ny; if (siste == null) siste = ny;•Uttak (toveis): if (ut.forrige == null) forste = ut.neste; else ut.forrige.neste = ut.neste;•Uttak (toveis, forts.): if (ut.neste == null) siste = ut.forrige; else ut.neste.forrige = ut.forrige;•Forsøker new T() eller new T[10] - typeparameteren finnes ikke på kjøretid.•Glemmer typekonverteringen når en peker deklarert med supertypen tilordnes en variabel av typen T.•Bruker rå typer uten vinkelparenteser og må så typekonvertere alt fra Object.•Husk typekonverteringen når du leser neste/forrige tilbake: de er deklarert med supertypen i dataklassen.•Ved bruk av den generiske klassen er selve deklarasjonen KolonneG det viktigste poenget.•PECS: skal du lese ut, bruk ? extends; skal du legge inn, bruk ? super.•Beholder er ikke en Beholder - generiske typer er ikke kovariante.