0 0

iterator.next()5

既然iterator.next()是输出下一个,那么,第一个怎么输出呢
 
2012年8月11日 13:18

11个答案 按时间排序 按投票排序

0 0

2012年8月16日 14:14
0 0

想想数据结构中的链表,为什么总是有个header指针,header->next()就是链表中第一个元素……

2012年8月13日 09:27
0 0

   1   2   3   4  
|

当读取一次iterator.next(); 后,指针如下

   1   2   3   4  
     |

(其中|表示指针所指位置)

2012年8月13日 01:51
0 0

开始的索引是-1,next之后就是0了,就是第一个

2012年8月12日 21:39
0 0

看一段jdk中Interator.next()的实现源码,就会明白next()的真正作用了。
AbstractList中的内部类Itr部分源码如下:

    private class Itr implements Iterator<E> {
	/**
	 * Index of element to be returned by subsequent call to next.
	 */
	int cursor = 0;

	/**
	 * Index of element returned by most recent call to next or
	 * previous.  Reset to -1 if this element is deleted by a call
	 * to remove.
	 */
	int lastRet = -1;

	public boolean hasNext() {
            return cursor != size();
	}

	public E next() {
            checkForComodification();
	    try {
		E next = get(cursor);
		lastRet = cursor++;
		return next;
	    } catch (IndexOutOfBoundsException e) {
		checkForComodification();
		throw new NoSuchElementException();
	    }
	}

从上面的源码可以看出,next()方法获取的是当前cursor对应的元素值(通过get方法),而默认初始化会将cursor设置为0,所以第一次调用next()方法返回的是get(0)。如果初始化Interator的实现类时指定相应的index值,则第一次调用next()方法放回的是get(index)。

2012年8月11日 21:59
0 0

当第一次输入iterator.next()的时候,它就是第一个。

2012年8月11日 21:06
0 0

这年头学编程的,基本都不把自己手头的书看一遍的吗?而且 这还是语法的基本啊!

2012年8月11日 20:53
0 0

List list = new ArrayList();
for(Iterator it = list.iterator;it.hasNext();){
    it.next();
}

第一次循环时,it.next()便是第一个呀

2012年8月11日 17:58
0 0

在循环里break一下就行了

2012年8月11日 16:04
0 0


第一次的next() 就是第一个。
在Iterator类中,我们经常用到两个方法: hasNext(), next(),
具体含义: next(),  是返回当前元素, 并指向下一个元素。
           hasNext(), 则是判断当前元素是否存在,并指向下一个元素(即所谓的索引)
如: 枚举工号
        Map  map = new HashMap();
             
        map = new HashMap();
        map.put("1155669", "Tom");
        map.put("1155689", "Jane");
        map.put("1165669", "Kevin");
        map.put("1155660", "Gavin");
      
        Set keySet = map.keySet();
        Iterator  iterator = keySet.iterator();
      
        while (iterator.hasNext()) {
            String  key = (String) iterator.next();
            System.out.println(key);
        }
那么第一次输出的就是第一个"1155669".....

2012年8月11日 15:32
0 0

你每次通过iterator()方法获取到一个iterator过后,第一次的next() 就是第一个啊?
不知道对不对你的意思.

2012年8月11日 13:33

相关推荐

    11-Iterator.rar

    2. **迭代器接口**(Iterator Interface):定义了遍历元素的方法,如`hasNext()`用于检查是否还有更多元素,以及`next()`用于返回下一个元素。在Java中,这就是`java.util.Iterator`接口。 3. **具体迭代器**...

    java使用ListIterator对List遍历时添加修改删除​

    System.out.println(iterator.next()); } ``` ### 3. 添加元素 在遍历过程中,可以使用`add(E element)`方法在当前迭代位置插入新元素,这会更新迭代器的状态,使其指向新插入元素的后面。 ```java iterator.add...

    Java 程序显示 hasNext() 和 next() 方法的用法.docx

    iterator.next(); System.out.println(iterator.hasNext()); // 输出 true,因为还有一个元素未遍历 iterator.next(); System.out.println(iterator.hasNext()); // 输出 false,所有元素已遍历 ``` 2. `next()` ...

    List,Set和Map遍历读取[归类].pdf

    System.out.println(iterator.next()); } ``` - **方法二:JDK 5引入的增强型for循环(foreach)** ```java for (String item : list) { System.out.println(item); } ``` 增强型for循环简化了遍历过程,...

    Iterator遍历过程中list删除导致异常

    String item = iterator.next(); if (item.equals("特定值")) { list.remove(item); // 这里会抛出ConcurrentModificationException } } ``` 为了解决这个问题,可以使用以下两种方法: 1. 使用`Iterator`自身...

    android 代码

    一个mp3开发程序 private List&lt;Mp3Info&gt; parse(String ... Mp3Info mp3Info = (Mp3Info) iterator.next(); System.out.println(mp3Info); } } catch (Exception e) { e.printStackTrace(); } return infos; }

    HQL经典查询语句[文].pdf

    String name = (String) iterator.next(); } ``` HQL还提供了多种内置的聚合函数,方便对数据进行统计分析。这些函数包括: 1. `count()`:用于计算记录的条数。例如,查询`customer`表中的客户总数: ```java ...

    Mockito常用方法.docx

    String result = iterator.next() + " " + iterator.next() + " " + iterator.next(); assertEquals("hello world world", result); } ``` 3、参数匹配 使用Mockito可以根据不同的参数返回不同的结果,例如: `...

    tess-two-3.02-so-libs

    ----基于google tesseract-ocr-3.02版本;2012-12; ----Linux环境编译, 2014-12... } while (iterator.next(PageIteratorLevel.RIL_WORD)); // Attempt to shut down the API. baseApi.end(); bmp.recycle(); }

    hashMap利用iterator迭代器迭代元素方法

    `Iterator`接口定义了三个基本方法:`hasNext()`、`next()`和`remove()`。`hasNext()`检查迭代器是否还有更多元素,`next()`返回下一个元素,而`remove()`则移除当前元素。在`HashMap`中,我们可以通过`entrySet()`...

    loop-iterator:让我们遍历一个数组,然后在您运行得太远时返回到起点。 您还可以向后迭代并保留历史记录

    安装npm install loop-iterator --save用法var LoopIterator = require ( 'loop-iterator' ) ;var iterator = new LoopIterator ( [ 'Ina' , 'Sebastian' , 'Henner' ] ) ;console . log ( iterator . current ( ) )...

    Mockito常用方法.pdf

    String result = iterator.next() + "" + iterator.next() + ""; // 验证结果 assertEquals("helloworldworld", result); } ``` 参数匹配 Mockito 提供了一个 `when` 方法来模拟期望结果,并且可以根据参数匹配...

    Iterator.zip

    4. **使用迭代器**:在客户端代码中,我们可以通过调用`iterator()`方法获取迭代器,然后使用`hasNext()`和`next()`遍历聚合对象的所有元素。 5. **迭代器的应用场景**:迭代器广泛应用于各种算法和框架中,例如...

    C++设计模式代码资源21_Iterator.zip

    1. **迭代器角色(Iterator)**: 这是接口角色,定义了遍历元素的操作,如`begin()`用于获取迭代器的初始位置,`next()`用于移动迭代器到下一个元素,`end()`用于标识迭代结束,以及`current_item()`用于返回当前...

    设计模式的迭代器模式的例子

    System.out.println(iterator.next()); } } } ``` 通过这种方式,客户端代码只需与迭代器交互,而不需要关心聚合对象的具体实现,符合“开闭原则”,提高了代码的可扩展性和可维护性。同时,迭代器模式也支持...

    皮尔逊-III相关\皮尔逊相关系数的java实现.docx

    String u_rating_map_iterator_key = u_rating_map_iterator.next(); if(rating_map_iterator_key.equals(u_rating_map_iterator_key)){ // todo: 计算皮尔逊相关系数 } } } } } ``` 在上面的代码中,我们...

    前端项目-co.zip

    iterator.next(userJson).value.then(data =&gt; { // 继续执行 return data.json(); }).then(postsJson =&gt; { iterator.next(postsJson); // 完成流程 }); }); ``` 在压缩包"co-master"中,可能包含了以下内容: ...

    66丨迭代器模式(中):遍历集合的同时,为什么不能增删集合元素?1

    String current = iterator.next(); // 判断是否需要删除当前元素 if (shouldRemove(current)) { iterator.remove(); } } ``` 在上面的代码中,`shouldRemove(current)`是一个逻辑判断,决定是否应该删除当前...

    pop-iterate:JavaScript 对象的多态迭代器运算符

    expect ( iterator . next ( ) ) . toEqual ( { value : 1 , done : false , index : 0 } ) ; expect ( iterator . next ( ) ) . toEqual ( { value : 2 , done : false , index : 1 } ) ; expect ( iterator . next...

Global site tag (gtag.js) - Google Analytics