从链表实现到对象引用

有关结点类的疑惑

实现链表时首先要编写结点类,如下图

 

 

 

Node<E> next;

 链表实现上一个结点指向下一个结点的关键在于:把Node类型的引用作为结点对象的一个属性。 

对象引用

关于对象引用解释的地址:作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

 

 

 

引用的值传递,意味着对象的地址被复制,并传递给Java方法。Java方法根据该引用的访问将会影响对象。

 

 

 链表中的对象引用

那么就很容易理解链表的具体操作了。

例如链表的添加方法:

复制代码
    public void add(Node node){
        Node temp = head;
        while(true){
            if(temp.next == null){
                break;
            }
            temp = temp.next;
        }
        temp.next = node;
    }
复制代码

Node temp = head;  使得temp和head指向同一个结点对象

 

if(temp.next == null);  new node时next是没有指向任何对象的,所以第一个结点,即head的next == null。

 

temp = temp.next      如果temp.next非空,说明有指向下一个结点;那么让temp和temp.next指向同一个结点对象。

           显然,这时temp就会和下一个结点的引用指向同一个结点对象。

           通过while循环,可以找到列表的尾部。

 

temp.next = node;    这时由于temp和最后一个结点(设为node10)指向的是同一个对象,所以temp.next改变node1.next也会一样改变。

           这行代码使得temp.next 和node指向同一个对象。

 

所以最后node10的属性next(node类型的引用)和node10的后一个结点node指向的对象是同一个对象。

 

理解了引用和对象,画图时可以简化

 

posted @   jojo的奇妙编程  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示