diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-01-05 10:50:38 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-01-05 10:50:38 +0100 |
commit | 5977d8e45b6306a8516c06bbf57190ab3931380b (patch) | |
tree | b21e83bbeb34ca699c7bb60d044810547d05639e /vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java | |
parent | f6007e2cce9c6048ae27a8af3df6fdd917162f75 (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.java | 22 |
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()); + } + + } + } |