新人初学java,有些基本问题不是很懂,求教各位,谢谢
java中的LinkedList这个链表类中有这样一个方法,removefirst方法,含义是删除,并且返回链表的第一个元素,我想问下各位,是不是只要是删除了第一个元素,那么后面的第二个元素会顶到原来第一个元素的位置上,当我第二次调用这个方法时,相当于删除了链表的第一个元素(原来的第二个元素)?
谢谢各位了
java中的链表类的remove问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答
关注 是的,removeFirst()方法返回链表第一个元素,并且删掉这个元素,当再一次调用该方法时,又会获得第一个元素(原来的第二个)并删除之。给你看一下removeFirst()的源码你就知道了:
public E removeFirst() { final Node<E> f = first; if (f == null) throw new NoSuchElementException(); return unlinkFirst(f); //private方法 } private E unlinkFirst(Node<E> f) { // assert f == first && f != null; //需确保f为头结点,且链表不为Null final E element = f.item; //获得节点的值 final Node<E> next = f.next; //获得头结点下一个节点 f.item = null; f.next = null; // help GC first = next; if (next == null) //如果next为null,则表示f为last结点,此时链表即为空链表 last = null; else //修改next的前向指针,因为first结点的前向指针为null next.prev = null; size--; modCount++; return element; }
具体的关于LinkedList其他问题你可以参考这篇博文http://blog.csdn.net/eson_15/article/details/51135944
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘