@Override public Set<Entry<String, JsonElement>> entrySet() { final Set<Entry<Integer, JsonElement>> entrySet = intMap.entrySet(); return new Set<Map.Entry<String, JsonElement>>() {
@Override public void serialize(Writer w) throws IOException { w.append(JsonSerializer.OPEN_BRACE); Iterator<Entry<Integer, JsonElement>> iterator = intMap.entrySet().iterator(); while (iterator.hasNext()) { Entry<Integer, JsonElement> entry = iterator.next(); EfficientString key = EfficientString.get(entry.getKey()); JsonElement value = entry.getValue(); w.append(JsonSerializer.QUOTE); w.append(JsonSerializer.jsonEscape(key.toString())); w.append(JsonSerializer.QUOTE); w.append(JsonSerializer.COLON); value.serialize(w); if (iterator.hasNext()) { w.append(JsonSerializer.COMMA); } } w.append(JsonSerializer.CLOSE_BRACE); }
public void shouldRemove() { SimpleIntKeyMap<JsonElement> m = new SimpleIntKeyMap<>(); for(int i=0;i<42;i++) { m.put(i, primitive(i)); } Iterator<Entry<Integer, JsonElement>> iterator = m.entrySet().iterator(); while (iterator.hasNext()) { Entry<Integer, JsonElement> entry = iterator.next(); Integer key = entry.getKey(); iterator.remove(); assertThat(m.get(key), nullValue()); } }
public void shouldIterate() { SimpleIntKeyMap<JsonElement> m = new SimpleIntKeyMap<>(); for(int i=0;i<42;i++) { m.put(i, primitive(i)); } int i=0; for(Entry<Integer, JsonElement> e: m.entrySet()) { assertThat(e.getKey(), is(i)); assertThat(e.getValue(), is((JsonElement)primitive(i))); i++; } assertThat(i, is(m.size())); }
public void shouldRemoveStuff() { SimpleIntKeyMap<Integer> map = new SimpleIntKeyMap<>(); for(int i=0; i< 200; i++) { map.put(i, i); } for(int i=0; i< 200; i=i+2) { map.remove(i); } assertThat(map.size()).isEqualTo(100); for(Entry<Integer, Integer> e: map.entrySet()) { assertThat(e.getValue() % 2).as("all even versions were removed").isEqualTo(1); } }
public void shouldRemoveFromEntrySet() { SimpleIntKeyMap<JsonElement> m = new SimpleIntKeyMap<>(); m.put(42, primitive(42)); m.put(43, primitive(43)); Set<Entry<Integer, JsonElement>> set = m.entrySet(); Iterator<Entry<Integer, JsonElement>> iterator = set.iterator(); iterator.next(); iterator.remove(); assertThat(m.get(42)).isNull(); }
@Test(expectedExceptions=ConcurrentModificationException.class) public void shouldNotAllowConcurrentModification() { SimpleIntKeyMap<JsonElement> m = new SimpleIntKeyMap<>(); for(int i=0;i<42;i++) { m.put(i, primitive(i)); } for(@SuppressWarnings("unused") Entry<Integer, JsonElement> e: m.entrySet()) { m.put(1234, primitive("y")); } }