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());
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: