summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java32
1 files changed, 24 insertions, 8 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java b/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java
index 433547a5..de22a6b3 100644
--- a/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java
+++ b/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java
@@ -23,9 +23,11 @@ package de.lmu.ifi.dbs.elki.database.datastore.memory;
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+import java.util.Arrays;
+
import de.lmu.ifi.dbs.elki.database.datastore.DataStoreIDMap;
import de.lmu.ifi.dbs.elki.database.datastore.WritableDoubleDataStore;
-import de.lmu.ifi.dbs.elki.database.ids.DBID;
+import de.lmu.ifi.dbs.elki.database.ids.DBIDRef;
/**
* A class to answer representation queries using the stored Array.
@@ -52,14 +54,28 @@ public class ArrayDoubleStore implements WritableDoubleDataStore {
* @param idmap ID map
*/
public ArrayDoubleStore(int size, DataStoreIDMap idmap) {
+ this(size, idmap, Double.NaN);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param size Size
+ * @param idmap ID map
+ * @param def Default value
+ */
+ public ArrayDoubleStore(int size, DataStoreIDMap idmap, double def) {
super();
this.data = new double[size];
+ if(def != 0) {
+ Arrays.fill(this.data, def);
+ }
this.idmap = idmap;
}
@Override
@Deprecated
- public Double get(DBID id) {
+ public Double get(DBIDRef id) {
try {
return data[idmap.map(id)];
}
@@ -70,20 +86,20 @@ public class ArrayDoubleStore implements WritableDoubleDataStore {
@Override
@Deprecated
- public Double put(DBID id, Double value) {
+ public Double put(DBIDRef id, Double value) {
final int off = idmap.map(id);
double ret = data[off];
data[off] = value;
return ret;
}
-
+
@Override
- public double doubleValue(DBID id) {
+ public double doubleValue(DBIDRef id) {
return data[idmap.map(id)];
}
@Override
- public double putDouble(DBID id, double value) {
+ public double putDouble(DBIDRef id, double value) {
final int off = idmap.map(id);
final double ret = data[off];
data[off] = value;
@@ -91,7 +107,7 @@ public class ArrayDoubleStore implements WritableDoubleDataStore {
}
@Override
- public double put(DBID id, double value) {
+ public double put(DBIDRef id, double value) {
final int off = idmap.map(id);
final double ret = data[off];
data[off] = value;
@@ -105,7 +121,7 @@ public class ArrayDoubleStore implements WritableDoubleDataStore {
}
@Override
- public void delete(DBID id) {
+ public void delete(DBIDRef id) {
throw new UnsupportedOperationException("Can't delete from a static array storage.");
}