diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanRangeQuery.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanRangeQuery.java | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanRangeQuery.java b/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanRangeQuery.java index a7bb7db9..c8ddb1ec 100644 --- a/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanRangeQuery.java +++ b/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanRangeQuery.java @@ -23,12 +23,12 @@ package de.lmu.ifi.dbs.elki.database.query.range; along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import java.util.ArrayList; import java.util.Collections; -import java.util.List; -import de.lmu.ifi.dbs.elki.database.ids.DBID; -import de.lmu.ifi.dbs.elki.database.query.DistanceResultPair; +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.DistanceDBIDResult; +import de.lmu.ifi.dbs.elki.database.query.GenericDistanceDBIDList; import de.lmu.ifi.dbs.elki.database.query.GenericDistanceResultPair; import de.lmu.ifi.dbs.elki.database.query.LinearScanQuery; import de.lmu.ifi.dbs.elki.database.query.distance.DistanceQuery; @@ -56,12 +56,12 @@ public class LinearScanRangeQuery<O, D extends Distance<D>> extends AbstractDist } @Override - public List<DistanceResultPair<D>> getRangeForDBID(DBID id, D range) { - List<DistanceResultPair<D>> result = new ArrayList<DistanceResultPair<D>>(); - for(DBID currentID : relation.iterDBIDs()) { - D currentDistance = distanceQuery.distance(id, currentID); + public DistanceDBIDResult<D> getRangeForDBID(DBIDRef id, D range) { + GenericDistanceDBIDList<D> result = new GenericDistanceDBIDList<D>(); + for(DBIDIter iter = relation.getDBIDs().iter(); iter.valid(); iter.advance()) { + D currentDistance = distanceQuery.distance(id, iter); if(currentDistance.compareTo(range) <= 0) { - result.add(new GenericDistanceResultPair<D>(currentDistance, currentID)); + result.add(new GenericDistanceResultPair<D>(currentDistance, iter.getDBID())); } } Collections.sort(result); @@ -69,12 +69,12 @@ public class LinearScanRangeQuery<O, D extends Distance<D>> extends AbstractDist } @Override - public List<DistanceResultPair<D>> getRangeForObject(O obj, D range) { - List<DistanceResultPair<D>> result = new ArrayList<DistanceResultPair<D>>(); - for(DBID currentID : relation.iterDBIDs()) { - D currentDistance = distanceQuery.distance(currentID, obj); + public DistanceDBIDResult<D> getRangeForObject(O obj, D range) { + GenericDistanceDBIDList<D> result = new GenericDistanceDBIDList<D>(); + for(DBIDIter iter = relation.getDBIDs().iter(); iter.valid(); iter.advance()) { + D currentDistance = distanceQuery.distance(obj, iter); if(currentDistance.compareTo(range) <= 0) { - result.add(new GenericDistanceResultPair<D>(currentDistance, currentID)); + result.add(new GenericDistanceResultPair<D>(currentDistance, iter.getDBID())); } } Collections.sort(result); |