### Question:
FlyweightVectorSchema { public Iterator<VectorEntry<String, Value>> iterator(final Value[] values) { return new AbstractIterator2<VectorEntry<String, Value>>() { final Iterator<Entry<String, Integer>> keyIterator = keys.entrySet().iterator(); @Override protected VectorEntry<String, Value> getNext() { if (keyIterator.hasNext()) { final Entry<String, Integer> current = keyIterator.next(); Value value = values[current.getValue()]; if (value == null) { value = NullValue.NULL; } return new ImmutableFeatureVectorEntry(current.getKey(), value); } return finished(); } }; } FlyweightVectorSchema(String... keys);  FlyweightVectorSchema(FeatureInformation featureInformation);  FlyweightVectorSchema(Collection<String> keys); Value get(String name, Value[] values); void set(String name, Value value, Value[] values); int size(); Set<String> keys(); Iterator<VectorEntry<String, Value>> iterator(final Value[] values); FlyweightVectorBuilder builder();  }### Answer:
@Test public void testIteration() { Iterator<VectorEntry<String, Value>> iterator = schema.iterator(values); assertEquals(VALUE1, iterator.next().value()); assertEquals(VALUE2, iterator.next().value()); assertEquals(VALUE3, iterator.next().value()); assertEquals(NullValue.NULL, iterator.next().value()); }