edu.stanford.nlp.util.IterableIterator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stanford-parser Show documentation
Show all versions of stanford-parser Show documentation
Stanford Parser processes raw text in English, Chinese, German, Arabic, and French, and extracts constituency parse trees.
package edu.stanford.nlp.util;
import java.util.*;
/**
* This cures a pet peeve of mine: that you can't use an Iterator directly in
* Java 5's foreach construct. Well, this one you can, dammit.
*
* @author Bill MacCartney
*/
public class IterableIterator implements Iterator, Iterable {
private Iterator it;
public IterableIterator(Iterator it) {
this.it = it;
}
public boolean hasNext() { return it.hasNext(); }
public E next() { return it.next(); }
public void remove() { it.remove(); }
public Iterator iterator() { return this; }
public static void main(String[] args) {
String[] strings = new String[] {
"do", "re", "mi", "fa", "so", "la", "ti", "do",
};
Iterator it = Arrays.asList(strings).iterator();
// for (String s : it) { // UH-OH!!
// System.out.println(s);
// }
IterableIterator iterit = new IterableIterator(it);
for (String s : iterit) { // YAY!!
System.out.println(s);
}
}
}