java实例:Java中的链表及链表的增删查改_002

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,循环才能结束

  • 21
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值