summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-01-05 10:50:38 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2017-01-05 10:50:38 +0100
commit5977d8e45b6306a8516c06bbf57190ab3931380b (patch)
treeb21e83bbeb34ca699c7bb60d044810547d05639e /vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
parentf6007e2cce9c6048ae27a8af3df6fdd917162f75 (diff)
Use Tensor.Cell in iteration interface
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
index 8d72e860473..034bf714e48 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
@@ -35,7 +35,7 @@ public class MappedTensor implements Tensor {
public double get(TensorAddress address) { return cells.getOrDefault(address, Double.NaN); }
@Override
- public Iterator<Map.Entry<TensorAddress, Double>> cellIterator() { return cells.entrySet().iterator(); }
+ public Iterator<Cell> cellIterator() { return new CellIteratorAdaptor(cells.entrySet().iterator()); }
@Override
public Iterator<Double> valueIterator() { return cells.values().iterator(); }
@@ -91,4 +91,24 @@ public class MappedTensor implements Tensor {
}
}
+
+ private static class CellIteratorAdaptor implements Iterator<Cell> {
+
+ private final Iterator<Map.Entry<TensorAddress, Double>> adaptedIterator;
+
+ private CellIteratorAdaptor(Iterator<Map.Entry<TensorAddress, Double>> adaptedIterator) {
+ this.adaptedIterator = adaptedIterator;
+ }
+
+ @Override
+ public boolean hasNext() { return adaptedIterator.hasNext(); }
+
+ @Override
+ public Cell next() {
+ Map.Entry<TensorAddress, Double> entry = adaptedIterator.next();
+ return new Cell(entry.getKey(), entry.getValue());
+ }
+
+ }
+
}