import java.util.ArrayList; import java.util.Iterator; /* FIFO/LIFO To-veis Comparable Eget bruk og med Collections Indre klasser Iterator */ public class Lenkeliste> implements Iterable { public Node start = new Node(null); int str = 0; public void add(T data) { if (str == 0) { start.data = data; str++; } else { Node temp = start; while (temp.neste != null) { temp = temp.neste; } temp.neste = new Node(data); str++; } } // Returnerer det "største" elementet i lsiten public T stoerst() { Node temp = start; Node storst = start; while (temp != null) { if (storst.data.compareTo(temp.data) < 0){ storst = temp; } temp = temp.neste; } return storst.data; } public void byttUtMinste(T data) { Node temp = start; Node minst = start; while (temp != null) { if (minst.data.compareTo(temp.data) > 0) { minst = temp; } temp = temp.neste; } minst.data = data; } public void printData() { Node temp = start; while (temp != null) { System.out.println(temp.data); temp = temp.neste; } } private class Node { Node neste; T data; // Ikke alltid nødvendig å ha "neste" i konstruktøren // Man setter ofte bare inn "null" uansett Node(T data) { this.data = data; } } @Override public Iterator iterator() { return new LenkelisteIterator(); } private class LenkelisteIterator implements Iterator { Node current; boolean first = true; LenkelisteIterator() { current = start; } @Override public boolean hasNext() { return current.neste != null; } @Override public T next() { if (first) { first = false; return current.data; } current = current.neste; return current.data; } } public static void main(String[] args) { Lenkeliste l2 = new Lenkeliste<>(); l2.add(999); l2.add(1); l2.add(111); l2.add(10); l2.byttUtMinste(1000000000); ArrayList l3 = new ArrayList<>(); l3.add(999); l3.add(1); l3.add(111); l3.add(10); for (Integer ek : l2) { System.out.println(ek); } System.exit(1); Lenkeliste l = new Lenkeliste<>(); // Enkel integrasjonstest l.add("Hei"); if (l.start.data != "Hei") { System.out.println("Feil 'hei' != data"); } else { System.out.println("Riktig"); } l.add("på"); if (l.start.neste.data != "på") { System.out.println("Feil 'på != data"); } else { System.out.println("Riktig"); } } }