You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by ka...@apache.org on 2008/04/14 09:11:09 UTC
svn commit: r647677 -
/lucene/mahout/trunk/src/main/java/org/apache/mahout/matrix/VectorView.java
Author: kalle
Date: Mon Apr 14 00:11:04 2008
New Revision: 647677
URL: http://svn.apache.org/viewvc?rev=647677&view=rev
Log:
MAHOUT-26, eternal loop in VectorView#iterator
Modified:
lucene/mahout/trunk/src/main/java/org/apache/mahout/matrix/VectorView.java
Modified: lucene/mahout/trunk/src/main/java/org/apache/mahout/matrix/VectorView.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/src/main/java/org/apache/mahout/matrix/VectorView.java?rev=647677&r1=647676&r2=647677&view=diff
==============================================================================
--- lucene/mahout/trunk/src/main/java/org/apache/mahout/matrix/VectorView.java (original)
+++ lucene/mahout/trunk/src/main/java/org/apache/mahout/matrix/VectorView.java Mon Apr 14 00:11:04 2008
@@ -126,23 +126,42 @@
}
@Override
- public Iterator<Vector.Element> iterator() { return new ViewIterator(); }
+ public Iterator<Vector.Element> iterator() {
+ return new ViewIterator();
+ }
+
public class ViewIterator implements Iterator<Vector.Element> {
- Iterator<Vector.Element> it;
- Vector.Element el;
+ private Iterator<Vector.Element> it;
+ private Vector.Element el;
+
public ViewIterator() {
- it=vector.iterator();
- while(it.hasNext())
- { el=it.next();
- if(isInView(el.index())) return;
+ it = vector.iterator();
+ buffer();
+ }
+
+ private void buffer() {
+ while (it.hasNext()) {
+ el = it.next();
+ if (isInView(el.index())) return;
}
- el=null; // No element was found
+ el = null; // No element was found
+ }
+
+ public Vector.Element next() {
+ Vector.Element buffer = el;
+ buffer();
+ return buffer;
}
- public Vector.Element next() { return el; }
- public boolean hasNext() { return el!=null; }
+
+ public boolean hasNext() {
+ return el != null;
+ }
+
/** @throws UnsupportedOperationException all the time. method not
* implemented.
*/
- public void remove() { throw new UnsupportedOperationException(); }
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
}
}