diff options
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java')
-rw-r--r-- | elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java index 2fc54afd..912a501b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java @@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.iterator.Iter; * Implementation using GNU Trove Int Hash Sets. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.has Itr */ @@ -158,7 +159,7 @@ class TroveHashSetModifiableDBIDs implements HashSetModifiableDBIDs, IntegerDBID } @Override - public void pop(DBIDVar outvar) { + public DBIDVar pop(DBIDVar outvar) { if(store.size() == 0) { throw new ArrayIndexOutOfBoundsException("Cannot pop() from an empty array."); } @@ -167,9 +168,8 @@ class TroveHashSetModifiableDBIDs implements HashSetModifiableDBIDs, IntegerDBID while(i-- > 0 && (states[i] != TPrimitiveHash.FULL)) { ; // Not occupied. Continue } - if(i < 0) { - outvar.unset(); - return; + if(i < 0) { // Should never happen because size > 0 + throw new ArrayIndexOutOfBoundsException("Cannot pop() from an empty array."); } final int val = store._set[i]; if(outvar instanceof IntegerDBIDVar) { @@ -180,6 +180,7 @@ class TroveHashSetModifiableDBIDs implements HashSetModifiableDBIDs, IntegerDBID } // Unfortunately, not visible: store.removeAt(i); store.remove(val); + return outvar; } /** |