import java.util.EnumMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

/**
 * {@link <a href=
 * "https://[Log in to view URL]"
 * target= "_blank">Primitive EnumMap<K extends Enum<K>, V></a>}
 * 
 * @author itammb ( Italia Massimiliano Buscati )
 * @version JDK 1.15
 *
 */

class Main {
	public static class UniTestEnumMap {
		public static enum Game {
			CRICKET, HOCKEY, TENNIS
		}

		public void costructor() {
			applayIterator(createTest());
		}

		/**
		 * @see EnumMap#put(Enum, Object)
		 *
		 */
		public void applayPut(Map<Game, Short> buffer) {
			buffer.clear();

			buffer.put(Game.TENNIS, (short) 0);

			applayIterator(buffer);
		}

		public void applayEquals(Map<Game, Short> source) {
			Map<Game, Short> other = createTest();
			other.remove(Game.TENNIS);

			applayEquals(source, other);

			other = createTest();

			applayEquals(source, other);
		}

		/**
		 * @see EnumMap#equals(Object)
		 *
		 */
		private void applayEquals(Map<Game, Short> source, Map<Game, Short> other) {
			applayIterator(source);
			applayIterator(other);
			System.out.println(source.equals(other));
		}

		/**
		 * @see EnumMap#remove(Object, Object)
		 *
		 */
		public void applayRemove(Map<Game, Short> buffer) {
			buffer.remove(Game.TENNIS);

			applayIterator(buffer);
		}

		/**
		 * @see EnumMap#keySet()
		 *
		 */
		public void applayRemoveAll(Map<Game, Short> buffer, Set<Game> key) {
			buffer.keySet().removeAll(key);

			applayIterator(buffer);
		}

		/**
		 * @see EnumMap#forEach(java.util.function.BiConsumer)
		 *
		 */
		public void applayforEach(Map<Game, Short> buffer) {
			buffer.forEach((k, v) -> System.out.print("[k=" + k + ", v=" + v + "] "));
			println();
		}

		/**
		 * @see Map#entrySet()
		 * @see Iterator
		 * 
		 */
		public void applayIterator(Map<Game, Short> buffer) {
			if (buffer.isEmpty())
				System.out.print("[]");
			else
				for (Iterator<Entry<Game, Short>> itr = buffer.entrySet().iterator(); itr.hasNext();)
					System.out.print(itr.next() + " ");

			println();
		}

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

		/**
		 * @see EnumMap#EnumMap(Class)
		 *
		 */
		public static EnumMap<Game, Short> createTest() {
			EnumMap<Game, Short> buffer = new EnumMap<Game, Short>(Game.class);

			buffer.put(Game.CRICKET, (short) 1);
			buffer.put(Game.HOCKEY, (short) 2);
			buffer.put(Game.TENNIS, (short) 3);

			return buffer;
		}
	}

	public static void main(String args[]) throws Exception {
		// Unit test - crea una struttura
		new UniTestEnumMap().costructor();

		// Unit test - aggiunge una coppia chiave-valore nella struttura
		new UniTestEnumMap().applayPut(UniTestEnumMap.createTest());

		// Unit test - verifica se due strutture sono uguali ( stessi elementi )
		new UniTestEnumMap().applayEquals(UniTestEnumMap.createTest());

		// Unit test - rimuove dalla struttura un elemento associato a una chiave 
		new UniTestEnumMap().applayRemove(UniTestEnumMap.createTest());

		// Unit test - rimuove massivamente chiavi dalla struttura
		new UniTestEnumMap().applayRemoveAll(UniTestEnumMap.createTest(), UniTestEnumMap.createTest().keySet());

		// Unit test - attraversa una struttura
		new UniTestEnumMap().applayforEach(UniTestEnumMap.createTest());

		// Unit test - attraversa una struttura con l'ausilio di un'interfaccia
		// Iteretor<E>
		new UniTestEnumMap().applayIterator(UniTestEnumMap.createTest());
	}
}

Embed on website

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