黑马程序员技术交流社区

标题: 一个遍历的问题 [打印本页]

作者: 吴光新    时间: 2013-6-6 06:50
标题: 一个遍历的问题
  1. while(!link.isEmpty())
  2. {
  3. sop(link.removeFirst());//正向遍历
  4. }
复制代码
removeFirst();获取元素,同时删除元素
getFirst();获取元素,但不删除元素
老师是这么说的

那么为什么在遍历时用removeFirst 而不是getFirst?

作者: 十字路口    时间: 2013-6-6 08:29
个人理解:如果在遍历时每次都是getFirst那不是每次得到的都是第一个元素吗?而removeFirst();获取元素,同时删除元素,这样每次第一个元素遍历后删除了,第二个元素就成了第一个,这样才能遍历所有的元素。希望你能理解。
作者: luckwei    时间: 2013-6-6 09:41
在while中你判断的是!link.isEmpty  如果你在调用getFirst返回的就一直是集合中国第一个元素,而如果调用removeFirst是删除第一个元素,并返回这个元素,那么下一个元素就是First了,也就能去不遍历了

{XPI2@MUTBC]AZQPP%7X20O.jpg (33.95 KB, 下载次数: 0)

使用getFirst方法

使用getFirst方法

$953XY{7)TUIO2{WPMVR3%M.jpg (5.9 KB, 下载次数: 0)

结果都是第一个元素

结果都是第一个元素

作者: 袁梦希    时间: 2013-6-12 18:45
十字路口 发表于 2013-6-6 08:29
个人理解:如果在遍历时每次都是getFirst那不是每次得到的都是第一个元素吗?而removeFirst();获取元素,同 ...

加油马上25了   争取突破30
作者: 袁梦希    时间: 2013-6-12 18:46
luckwei 发表于 2013-6-6 09:41
在while中你判断的是!link.isEmpty  如果你在调用getFirst返回的就一直是集合中国第一个元素,而如果调用re ...

加油
作者: 袁梦希    时间: 2013-6-12 18:46
楼主你好  如果问题已经解决  请把帖子的类型改为已解决  然后会给你发几个粽子吃
作者: 十字路口    时间: 2013-6-13 08:33
加油马上25了   争取突破30
谢谢版主!我会加油的。
作者: Spole_168    时间: 2013-6-13 08:45
我认为是这样的:linkList 是链表,储存时在物理空间不是连续的,用指针链接的。对于删除和新增操作比较方便,并且效率相当高。而是用getFirst()每次只能得到以第一元素。无法遍历整个链表。建议楼主看一点数据结构方面链表的的书籍。。
作者: 曹睿翔    时间: 2013-6-13 15:53
问题已经解决的,请及时更改分类为已解决,方便大家查阅,没有的继续追问
关于提问技巧请看:http://bbs.itheima.com/thread-53229-1-1.html




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2