summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java
diff options
context:
space:
mode:
authorErich Schubert <erich@debian.org>2012-06-30 00:55:33 +0200
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:34 +0000
commit4343785ebed9d4145f417d86d581f18a0d31e4ac (patch)
tree546b0aa227d50caf4246be12f89ffcbae924f8e0 /src/de/lmu/ifi/dbs/elki/database/query/knn/KNNUtil.java
parent593eae6c91717eb9f4ff5088ba460dd4210509c0 (diff)
parentace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (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.java24
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!");
}
}