A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴光新 黑马帝   /  2013-6-6 06:50  /  1442 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. while(!link.isEmpty())
  2. {
  3. sop(link.removeFirst());//正向遍历
  4. }
复制代码
removeFirst();获取元素,同时删除元素
getFirst();获取元素,但不删除元素
老师是这么说的

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

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

9 个回复

倒序浏览
个人理解:如果在遍历时每次都是getFirst那不是每次得到的都是第一个元素吗?而removeFirst();获取元素,同时删除元素,这样每次第一个元素遍历后删除了,第二个元素就成了第一个,这样才能遍历所有的元素。希望你能理解。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
在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)

结果都是第一个元素

结果都是第一个元素

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
十字路口 发表于 2013-6-6 08:29
个人理解:如果在遍历时每次都是getFirst那不是每次得到的都是第一个元素吗?而removeFirst();获取元素,同 ...

加油马上25了   争取突破30
回复 使用道具 举报
luckwei 发表于 2013-6-6 09:41
在while中你判断的是!link.isEmpty  如果你在调用getFirst返回的就一直是集合中国第一个元素,而如果调用re ...

加油
回复 使用道具 举报
楼主你好  如果问题已经解决  请把帖子的类型改为已解决  然后会给你发几个粽子吃
回复 使用道具 举报
加油马上25了   争取突破30
谢谢版主!我会加油的。
回复 使用道具 举报
我认为是这样的:linkList 是链表,储存时在物理空间不是连续的,用指针链接的。对于删除和新增操作比较方便,并且效率相当高。而是用getFirst()每次只能得到以第一元素。无法遍历整个链表。建议楼主看一点数据结构方面链表的的书籍。。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
问题已经解决的,请及时更改分类为已解决,方便大家查阅,没有的继续追问
关于提问技巧请看:http://bbs.itheima.com/thread-53229-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马