### Question:
StringTuple implements Iterable<String> { public static StringTuple fromParts(String ...parts) { return fromList(Arrays.asList(parts)); } StringTuple(String s); private  StringTuple(String s, List<String> items); static StringTuple fromParts(String ...parts); static StringTuple fromList(List<String> list); int size(); String get(int index); int find(ConditionFn fn); StringTuple modify(int index, ModifierFn fn); StringTuple remove(int index); StringTuple insert(int index, String value); @Override Iterator<String> iterator(); @Override int hashCode(); @Override boolean equals(Object other); @Override String toString(); static String joinList(String separator, List<S> list);  }### Answer:
@Test void testHashingSingle() { HashMap<StringTuple, String> map = new HashMap<>(); map.put(StringTuple.fromParts("A"), "Test"); assertTrue(map.containsKey(StringTuple.fromParts("A"))); }