@SuppressWarnings("unused") public class EVListe { /////////////////////////////////////////////////////////// private class Node { Object obj; Node next; public Node(Object obj, Node next) { this.obj = obj; this.next = next; } public Node() { this(null, null); } public void setElement(Object obj) { this.obj = obj; } public Object getElement() { return this.obj; } public void setNext(Node next) { this.next = next; } public Node getNext() { return this.next; } } /////////////////////////////////////////////////////////// private Node head = null; public EVListe() { this.head = new Node(); } public void addFirst(Object o) { Node n = new Node(o, this.head.getNext()); this.head.setNext(n); } public void addLast(Object o) { Node l = this.head; while (l.getNext() != null) { l = l.getNext(); } Node n = new Node(o, null); l.setNext(n); } public Object getFirst() { return this.head.getNext().getElement(); } public Object getLast() { Node l = this.head; while (l.getNext() != null) { l = l.getNext(); } return l.getElement(); } public void removeFirst() { this.head.setNext(this.head.getNext().getNext()); } public void removeLast() { Node l = this.head; while (l.getNext().getNext() != null) { l = l.getNext(); } l.setNext(null); } public void removeElement(int i) { if (i < 0 ) { return; } if (i == 0) { this.removeFirst(); return; } Node l = this.head; int j = 0; for (; j < i; j++) { if (l.getNext().getNext() == null) { break; } l = l.getNext(); } if (j != i) { return; } else { l.setNext(l.getNext().getNext()); } } public String toString() { Node l = this.head; String s = ""; while (l.getNext() != null) { s += "[" + l.getNext().getElement().toString() + "] "; l = l.getNext(); } return s; } public static void main(String[] args) { EVListe L = new EVListe(); L.addFirst("3"); L.addFirst("2"); L.addFirst("1"); L.addLast ("4"); L.addLast ("5"); L.addLast ("6"); L.addLast ("7"); L.addLast ("8"); L.addLast ("9"); System.out.println("toString():\t\t" + L); System.out.println("getFirst():\t\t" + "[" + L.getFirst() + "]"); System.out.println("getLast():\t\t" + "[" + L.getLast () + "]"); L.removeFirst(); System.out.println("removeFirst():\t\t" + L); L.removeLast(); System.out.println("removeLast():\t\t" + L); L.removeElement(5); System.out.println("removeElement(5):\t" + L); L.removeElement(-1); System.out.println("removeElement(-1):\t" + L); L.removeElement(100); System.out.println("removeElement(100):\t" + L); } }