import java.util.EnumSet;
import java.util.Iterator;
import java.util.Set;
/**
* {@link <a href=
* "https://[Log in to view URL]"
* target= "_blank">Primitive EnumSet<E></a>}
*
* @author itammb ( Italia Massimiliano Buscati )
* @version JDK 1.15
*
*/
class Main {
public static class UniTestEnumSet {
public static enum Game {
CRICKET, HOCKEY, TENNIS
}
public void applayAllOf() {
applayIterator(createTest());
}
/**
* @see EnumSet#range(Enum, Enum)
*
*/
public void applayRange(Game from, Game to) {
applayIterator(EnumSet.range(from, to));
}
/**
* @see EnumSet#add(Object)
*
*/
public void applayAdd(Set<Game> buffer) {
buffer.clear();
buffer.add(Game.TENNIS);
applayIterator(buffer);
}
/**
* @see EnumSet#remove(Object)
*
*/
public void applayRemove(Set<Game> buffer) {
buffer.remove(Game.TENNIS);
applayIterator(buffer);
}
public void applayEquals(Set<Game> source) {
Set<Game> other = EnumSet.range(Game.CRICKET, Game.TENNIS);
applayEquals(source, other);
other = EnumSet.range(Game.CRICKET, Game.HOCKEY);
applayEquals(source, other);
}
/**
* @see EnumSet#equals(Object)
*
*/
private void applayEquals(Set<Game> source, Set<Game> other) {
applayIterator(source);
applayIterator(other);
System.out.println(source.equals(other));
}
public void applayRemoveAll(Set<Game> source) {
Set<Game> other = EnumSet.range(Game.CRICKET, Game.TENNIS);
applayRemoveAll(source, other);
}
/**
* @see EnumSet#removeAll(java.util.Collection)
*
*/
private void applayRemoveAll(Set<Game> source, Set<Game> other) {
System.out.println(source.removeAll(other));
applayIterator(source);
applayIterator(other);
}
/**
* @see EnumSet#of(Enum)
*
*/
public void applayRetainAll(Set<Game> source) {
Set<Game> other = EnumSet.of(Game.CRICKET);
applayRetainAll(source, other);
}
/**
* @see EnumSet#retainAll(java.util.Collection)
*
*/
private void applayRetainAll(Set<Game> source, Set<Game> other) {
System.out.println(source.retainAll(other));
applayIterator(source);
applayIterator(other);
}
/**
* @see Set#forEach(java.util.function.Consumer)
*
*/
public void applayforEach(Set<Game> buffer) {
buffer.forEach(i -> System.out.print("e=" + i + " "));
println();
}
/**
* @see Set#iterator()
* @see Iterator
*
*/
public void applayIterator(Set<Game> buffer) {
if (buffer.isEmpty())
System.out.print("[]");
else
for (Iterator<Game> itr = buffer.iterator(); itr.hasNext();)
System.out.print("e=" + itr.next() + " ");
println();
}
private static void println() {
System.out.println();
}
/**
* @see EnumSet#allOf(Class)
*
*/
public static EnumSet<Game> createTest() {
return EnumSet.allOf(Game.class);
}
}
public static void main(String args[]) throws Exception {
// Unit test - crea una struttura
new UniTestEnumSet().applayAllOf();
// Unit test - crea una struttura a partire da due elementi come estremi
new UniTestEnumSet().applayRange(UniTestEnumSet.Game.CRICKET, UniTestEnumSet.Game.TENNIS);
// Unit test - aggiunge un elemento nella struttura
new UniTestEnumSet().applayAdd(UniTestEnumSet.createTest());
// Unit test - verifica se due strutture sono uguali ( stessi elementi )
new UniTestEnumSet().applayEquals(UniTestEnumSet.createTest());
// Unit test - rimuove un elemento dalla struttura
new UniTestEnumSet().applayRemove(UniTestEnumSet.createTest());
// Unit test - rimuove elementi concordi da una struttura ( sorgente ) rispetto
// a un'altra
new UniTestEnumSet().applayRemoveAll(UniTestEnumSet.createTest());
// Unit test - rimuove elementi discordi da una struttura ( sorgente ) rispetto
// a un'altra
new UniTestEnumSet().applayRetainAll(UniTestEnumSet.createTest());
// Unit test - attraversa una struttura
new UniTestEnumSet().applayforEach(UniTestEnumSet.createTest());
// Unit test - attraversa una struttura con l'ausilio di un'interfaccia
// Iteretor<E>
new UniTestEnumSet().applayIterator(UniTestEnumSet.createTest());
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: