public MatrixEntry next() { Entry<Integer, Double> ele = null; if (rowIter.hasNext()) { ele = rowIter.next(); entry.eleInCol = ele; } else if (colIter.hasNext()) { Entry<Integer, Map<Integer, Double>> nextCol = colIter.next(); entry.col = nextCol; rowIter = nextCol.getValue().entrySet().iterator(); ele = rowIter.next(); entry.eleInCol = ele; } return entry; }
public boolean hasNext() { if (rowIter != null && rowIter.hasNext()) return true; else { while (colIter.hasNext()) { Entry<Integer, Map<Integer, Double>> nextCol = colIter.next(); rowIter = nextCol.getValue().entrySet().iterator(); if (rowIter.hasNext()) { entry.col = nextCol; return true; } } } return false; }