3)获取数据
现在,在添加了数据之后,我们写一个根据下标来获取数据的方法
public Object getData(int index){
if(index>this.index-1 || index<0){
return null;
}
Node temp=first;
int tempIndex=0;
while(true){
if(index == tempIndex){
return temp.getData();
}else{
temp=temp.getNext();
tempIndex++;
}
}
}
首先,我们判断一下传进来的下标是否合理,如果这个值比整个最后一个结点所在的位置还大或是比0还小,那么我们肯定没办法获取到这个位置的数据了,因此我们直接传一个空值null给它
然后,程序继续向下执行了,代表所给的下标没有问题,我们创建一个临时变量temp用来当寻找目标的箭头,因为我们是从头开始找,所以暂时让它指向第一个结点,然后我们再建立一个tempIndex代表temp当前所在位置的下标
我们先忽略循环,直接向下进行分析,
if(index == tempIndex){
return temp.getData();
}
这一部分代表,如果tempIndex所在位置已经等于我们传进来的index,即我们的箭头已经找到了目标,那么我们就直接返回目标位置的数据
else{
temp=temp.getNext();
tempIndex++;
}
这部分则代表没有找到的情况,如果我们没有找到目标,我们就让箭头继续向后移动,同时tempIndex随之增加,直到寻找到目标,此时正好满足条件:index == tempIndex,因此走进了第一个分支,返回该位置的值。
因为只要还没有找到目标,我们就要不断的将箭头向后进行移动,所以,我们将整个分支结构放入循环当中,并使循环始终为真,直到ndex==tempIndex,碰到return,循环才能结束