import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Collections;
import java.util.Deque;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* {@link <a href=
* "https://[Log in to view URL]"
* target= "_blank">Primitive ArrayDeque<E></a>}
*
* @author itammb ( Italia Massimiliano Buscati )
* @version JDK 1.15
*
*/
class Main {
/**
* @see Deque#offerFirst(Object)
*
*/
public static void applayMethodOfferFirst(Deque<Integer> buffer, Integer element) {
applayLoop(buffer);
buffer.offerFirst(element);
applayLoop(buffer);
}
/**
* @see Deque#peekFirst()
*
*/
public static void applayMethodPeekFirst(Deque<Integer> buffer) {
applayLoop(buffer);
System.out.println(buffer.peekFirst());
applayLoop(buffer);
}
/**
* @see Deque#pollFirst()
*
*/
public static void applayMethodPollFirst(Deque<Integer> buffer) {
applayLoop(buffer);
System.out.println(buffer.pollFirst());
applayLoop(buffer);
}
/**
* @see Deque#offerLast(Object)
*
*/
public static void applayMethodOfferLast(Deque<Integer> buffer, Integer element) {
applayLoop(buffer);
buffer.offerLast(element);
applayLoop(buffer);
}
/**
* @see Deque#peekLast()
*
*/
public static void applayMethodPeekLast(Deque<Integer> buffer) {
applayLoop(buffer);
System.out.println(buffer.peekLast());
applayLoop(buffer);
}
/**
* @see Deque#pollLast()
*
*/
public static void applayMethodPollLast(Deque<Integer> buffer) {
applayLoop(buffer);
System.out.println(buffer.pollLast());
applayLoop(buffer);
}
/**
* @see Collections#sort(List)
*
*/
public static void applaySort(Deque<Integer> buffer) {
List<Integer> source = applayStream(buffer);
Collections.sort(source);
buffer = new ArrayDeque<Integer>((Collection<Integer>) source);
applayLoop(buffer);
}
/**
* @see Deque#stream()
* @see Stream#collect(java.util.stream.Collector)
* @see Collectors#toList()
*
*/
private static List<Integer> applayStream(Deque<Integer> source) {
Stream<Integer> stream = source.stream();
return stream.collect(Collectors.toList());
}
/**
* @see Deque#forEach(java.util.function.Consumer)
*
*/
public static void applayLoop(Deque<Integer> buffer) {
buffer.forEach(i -> System.out.print("e=" + i + " "));
println();
}
/**
* @see Deque#iterator()
* @see Iterator#hasNext()
*
*/
public static void applayMethodIterator(Deque<Integer> buffer) {
for (Iterator<Integer> itr = buffer.iterator(); itr.hasNext();)
System.out.print("e=" + itr.next() + " ");
println();
}
private static void println() {
System.out.println();
}
/**
* @see ArrayDeque#add(Object)
*
*/
private static ArrayDeque<Integer> createBufferTest() {
return new ArrayDeque<Integer>() {
private static final long serialVersionUID = -69L;
{
add((Integer) 6);
add((Integer) 5);
add((Integer) 3);
add((Integer) 8);
add((Integer) 0);
add((Integer) 1);
add((Integer) 7);
}
};
}
public static void main(String args[]) throws Exception {
// Unit test - attraversa una struttura
applayLoop(createBufferTest());
// Unit test - attraversa una struttura con l'ausilio di un'interfaccia
// Iteretor<E>
applayMethodIterator(createBufferTest());
// Unit test - aggiunge un elemento in testa alla struttura
applayMethodOfferFirst(createBufferTest(), 4);
// Unit test - estrazione dell'elemento in testa alla struttura ( SENZA
// RIMOZIONE )
applayMethodPeekFirst(createBufferTest());
// Unit test - estrazione dell'elemento in testa alla struttura ( CON RIMOZIONE
// )
applayMethodPollFirst(createBufferTest());
// Unit test - aggiunge un elemento in coda alla struttura
applayMethodOfferLast(createBufferTest(), 4);
// Unit test - estrazione dell'elemento in coda alla struttura ( SENZA
// RIMOZIONE )
applayMethodPeekLast(createBufferTest());
// Unit test - estrazione dell'elemento in coda alla struttura ( CON RIMOZIONE
// )
applayMethodPollLast(createBufferTest());
// Unit test - ordina una struttura
applaySort(createBufferTest());
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: