diff options
author | Erich Schubert <erich@debian.org> | 2012-06-30 00:55:33 +0200 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:34 +0000 |
commit | 4343785ebed9d4145f417d86d581f18a0d31e4ac (patch) | |
tree | 546b0aa227d50caf4246be12f89ffcbae924f8e0 /src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java | |
parent | 593eae6c91717eb9f4ff5088ba460dd4210509c0 (diff) | |
parent | ace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (diff) |
Import Debian changes 0.5.0-1
elki (0.5.0-1) unstable; urgency=low
* New upstream release: 0.5.0 final.
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java b/src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java index 1179edb5..01deeaa0 100644 --- a/src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java +++ b/src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java @@ -23,7 +23,6 @@ package de.lmu.ifi.dbs.elki.database.query.knn; along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import java.util.AbstractCollection; import java.util.AbstractList; import java.util.Iterator; import java.util.List; @@ -31,6 +30,7 @@ import java.util.List; import de.lmu.ifi.dbs.elki.database.ids.ArrayDBIDs; import de.lmu.ifi.dbs.elki.database.ids.DBID; import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; +import de.lmu.ifi.dbs.elki.database.ids.DBIDRef; import de.lmu.ifi.dbs.elki.database.query.DistanceResultPair; import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance; @@ -49,7 +49,7 @@ public final class KNNUtil { * * @param <D> Distance */ - protected static class KNNSubList<D extends Distance<D>> extends AbstractCollection<DistanceResultPair<D>> implements KNNResult<D> { + protected static class KNNSubList<D extends Distance<D>> extends AbstractList<DistanceResultPair<D>> implements KNNResult<D> { /** * Parameter k */ @@ -240,6 +240,18 @@ public final class KNNUtil { public DBID getDBID() { return cur.getDBID(); } + + @Override + public boolean sameDBID(DBIDRef other) { + return getIntegerID() == other.getIntegerID(); + } + + @Override + public int compareDBID(DBIDRef o) { + final int thisVal = getIntegerID(); + final int anotherVal = o.getIntegerID(); + return (thisVal < anotherVal ? -1 : (thisVal == anotherVal ? 0 : 1)); + } } /** @@ -284,9 +296,9 @@ public final class KNNUtil { } @Override - public boolean contains(DBID o) { - for(DBID id : this) { - if(id.equals(o)) { + public boolean contains(DBIDRef o) { + for (DBIDIter iter = iter(); iter.valid(); iter.advance()) { + if(iter.sameDBID(o)) { return true; } } @@ -304,7 +316,7 @@ public final class KNNUtil { */ @Override @Deprecated - public int binarySearch(DBID key) { + public int binarySearch(DBIDRef key) { throw new UnsupportedOperationException("Since the result is usually not sorted, a binary Search does not make sense!"); } } |