### Question:
Trie implements Map.Entry<String, V>, Iterable<Map.Entry<String, V>>, Serializable { public Trie() { this(EMPTY_CHARACTER, null); } Trie(); private  Trie(char character, Trie<V> parent); Trie<V> getNode(CharSequence key); V put(String key, V value); V get(String key); V getOrPut(String key, V value); V getOrPut(String key, Factory<V> valueFactory); @Override V getValue(); @Override V setValue(V value); @Override String getKey(); boolean clean(); @Override Iterator<Map.Entry<String, V>> iterator(); int size(); @Override String toString();  }### Answer:
@Test public void testTrie() { Trie<Integer> trie = new Trie<Integer>(); trie.put("to", 1); trie.put("tea", 2); trie.put("ted", 3); trie.put("ten", 4); assertEquals(4, trie.size()); assertNull(trie.getNode("a")); assertEquals(3, trie.getNode("te").size()); }