Java LinkedList.get() 获取元素
Get(int)方法的实现在remove(int)中已经涉及过了。首先判断位置信息是否合法(大于等于0,小于当前LinkedList实例的Size),然后遍历到具体位置,获得节点的业务数据(element)并返回。
方法
get(int index):返回此列表中指定位置处的元素。
getFirst():返回此列表的第一个元素。
getLast():返回此列表的最后一个元素。
indexOf(Object o):返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
lastIndexOf(Object o):返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1
public E get(intindex) {
checkElementIndex(index);returnnode(index).item;
}
private void checkElementIndex(intindex) {if (!isElementIndex(index))throw newIndexOutOfBoundsException(outOfBoundsMsg(index));
}
/*** Returns the (non-null) Node at the specified element index.*/Node node(intindex) {//assert isElementIndex(index);
if (index < (size >> 1)) {
Node x =first;for (int i = 0; i < index; i++)
x=x.next;returnx;
}else{
Node x =last;for (int i = size - 1; i > index; i--)
x=x.prev;returnx;
}
}
注意细节:位运算与直接做除法的区别。先将index与长度size的一半比较,如果indexsize/2,就只从位置size往前遍历到位置index处。这样可以减少一部分不必要的遍历
本文主要介绍Java中LinkedList的get相关方法,包括get(int)、getFirst()、getLast()等方法的功能。还给出了get(int)方法的代码实现,同时提到判断位置信息合法性及遍历获取节点数据。此外,强调了使用位运算与size一半比较来减少不必要遍历的细节。
3064

被折叠的 条评论
为什么被折叠?



