不准访问
- 积分
- 12296
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-2-17
- 最后登录
- 1970-1-1
|
- public static Iterator<String> flatten(final Iterator<Iterator<String>> iters) {
- return new Iterator<String>() {
- private Iterator<String> curIter = null;
- private String nextItem = advanceItem();
-
- private String advanceItem() {
- if (iters == null && curIter == null) throw new NullPointerException();
-
- while ((iters != null && iters.hasNext()) || (curIter != null && curIter.hasNext())) {
- if ((curIter == null || !curIter.hasNext()))
- if (iters != null && iters.hasNext())
- curIter = iters.next();
- if (curIter == null) continue;
-
- while (curIter.hasNext()) {
- String result = curIter.next();
- if (result != null) return result;
- }
- }
- return null;
- }
-
- public boolean hasNext() {
- return nextItem != null;
- }
- public String next() {
- if (!hasNext())
- throw new NullPointerException();
- String oldItem = nextItem;
- nextItem = advanceItem();
- return oldItem;
- }
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
复制代码 |
|