import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

/**
 * {@link <a href=
 * "https://[Log in to view URL]"
 * target= "_blank">Primitive LinkedList<E></a>}
 * 
 * @author itammb ( Italia Massimiliano Buscati )
 * @version JDK 1.15
 *
 */
class Main {
	/**
	 * @see LinkedList#add(Object)
	 * @see LinkedList#addFirst(Object)
	 * @see LinkedList#addLast(Object)
	 *
	 */
	public static void applayMethodsAdd(LinkedList<Integer> buffer) {
		buffer.add(4); // coda
		buffer.add(5);
		buffer.addFirst(0); // testa
		// buffer.push(0);
		buffer.addLast(6); // coda

		buffer.offer(7); // coda
		buffer.offerFirst(-1);
		buffer.offerLast(8);

		applayLoop(buffer);
	}

	/**
	 * @see Iterator#next()
	 * @see LinkedList#descendingIterator()
	 *
	 */
	public static void applayMethodDescendingIterator(LinkedList<Integer> buffer) {
		for (Iterator<Integer> itr = buffer.descendingIterator(); itr.hasNext();)
			System.out.print("e=" + itr.next() + " ");

		println();
	}

	/**
	 * @see LinkedList#element()
	 * @see LinkedList#getFirst()
	 * @see LinkedList#getLast()
	 * 
	 */
	public static void applayMethodsGet(LinkedList<Integer> buffer) {
		applayLoop(buffer);
		System.out.println(buffer.element()); // testa
		System.out.println(buffer.getFirst()); // testa
		System.out.println(buffer.getLast()); // coda

		System.out.println(buffer.peek()); // testa
		System.out.println(buffer.peekFirst()); // testa
		System.out.println(buffer.peekLast()); // coda

		applayLoop(buffer);
	}

	/**
	 * @see LinkedList#removeFirst()
	 * @see LinkedList#removeLast();
	 *
	 */
	public static void applayMethodRemove(LinkedList<Integer> buffer) {
		applayLoop(buffer);
		System.out.println(buffer.removeFirst());// testa
		// System.out.println(buffer.pop());
		applayLoop(buffer);
		System.out.println(buffer.removeLast()); // coda
		applayLoop(buffer);
	}

	/**
	 * @see LinkedList#removeFirstOccurrence(Object)
	 * @see LinkedList#removeLastOccurrence(Object)
	 *
	 */
	public static void applayMethodRemoveOccurrence(LinkedList<Integer> buffer) {
		applayLoop(buffer);
		System.out.println(buffer.removeFirstOccurrence(1)); // testa
		System.out.println(buffer.removeLastOccurrence(3)); // coda
		applayLoop(buffer);
	}

	public static void applayMethodPool(LinkedList<Integer> buffer) {
		applayLoop(buffer);
		System.out.println(buffer.poll()); // testa
		System.out.println(buffer.pollFirst()); // testa
		System.out.println(buffer.pollLast()); // coda

		applayLoop(buffer);
	}

	/**
	 * @see List#size()
	 * @see List#get(int)
	 *
	 */
	public static void applayLoop(List<Integer> buffer) {
		if (buffer.isEmpty())
			System.out.print("[]");
		else
			for (int i = 0; i < buffer.size(); i++)
				System.out.print("[i=" + i + ", e=" + buffer.get(i) + "] ");

		println();
	}

	private static void println() {
		System.out.println();
	}

	/**
	 * @see LinkedList#add(Object)
	 *
	 */
	private static LinkedList<Integer> createBufferTest() {
		return new LinkedList<Integer>() {
			private static final long serialVersionUID = -69L;

			{
				add(1);
				add(2);
				add(3);
			}
		};
	}

	private static LinkedList<Integer> createBufferWithOccurrenceTest() {
		return new LinkedList<Integer>() {
			private static final long serialVersionUID = -69L;

			{
				add(1);
				add(1);
				add(2);
				add(3);
				add(3);
			}
		};
	}

	public static void main(String args[]) throws Exception {
		// Unit test - aggiunge un elemento in sequenza, in testa e in coda alla
		// struttura
		applayMethodsAdd(createBufferTest());

		// Unit test - attraversa una struttura dalla coda verso la testa
		applayMethodDescendingIterator(createBufferTest());

		// Unit test - restituisce un elemento della struttura senza estrarlo
		applayMethodsGet(createBufferTest());

		// Unit test - estrazione di un elemento della struttura
		applayMethodRemove(createBufferTest());

		// Unit test - estrazione del primo elemento, da un insieme di elementi simili
		// contigui
		applayMethodRemoveOccurrence(createBufferWithOccurrenceTest());

		// Unit test - restituisce un elemento della struttura e lo estrae
		applayMethodPool(createBufferTest());
	}
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: