【发布时间】:2014-04-11 07:51:07
【问题描述】:
在一次采访中,我被要求在 Java 中实现一些链表方法。我只有在 C++ 中实现链表的经验,有些事情让我很担心。在阅读了this question 并看到了答案后,我仍然有顾虑。
class Link {
public int data1;
public double data2;
public Link nextLink;
//Link constructor
public Link(int d1, double d2) {
data1 = d1;
data2 = d2;
}
//Print Link data
public void printLink() {
System.out.print("{" + data1 + ", " + data2 + "} ");
}
}
我的第一个问题是 Java 没有指针。我习惯于看到类似Node* nextNode; 而不是public Link nextLink; 的东西。如何在没有指针的情况下为 Link 赋值?是因为在 Java 中 new 返回一个实际的 Link 对象吗?或者它是否返回对它的引用?如果它返回对它的引用,这不是问题,因为引用不同于实际的Link 对象?或者在 Java 中任何对象的标识符实际上是一个引用?
我知道这是一个见仁见智的问题,但为什么链表似乎更多地出现在 C++ 中?我猜这种语言没有内置支持,所以很多关于链表的教程都是面向 C++ 的(即使重点是数据结构)。
【问题讨论】:
-
在Java中任何对象的标识符实际上是一个引用?我认为这就是解决方案。
-
对长段中的最后一句是。在 Java 中,任何对象的标识符都是一个引用。
-
Java 对象引用实际上是指针,具有查找对象所需的值。即地址
-
您知道
Java中的对象引用是一个指针,或者为什么我们在访问空引用时会得到NullPointerException:-) -
Java 中的所有对象类型都是引用类型。引用通常使用指针来实现,但并非必须如此。这能说明问题吗?
标签: java c++ data-structures linked-list