@Override public Iterator<DualEntry> iterator() { final TIntHashSet keys = new TIntHashSet(SparseShortArray.this.indices()); keys.addAll(otherArray.indices()); return new Iterator<DualEntry>() { DualEntry entry = new DualEntry(); TIntIterator iterator = keys.iterator(); @Override public boolean hasNext() { return iterator.hasNext(); } @Override public DualEntry next() { entry.index = iterator.next(); entry.value = SparseShortArray.this.get(entry.index); entry.otherValue = otherArray.get(entry.index); return entry; } @Override public void remove() { throw new UnsupportedOperationException(); } }; } };