【发布时间】:2013-02-03 02:43:00
【问题描述】:
我想做一些简单的事情,即创建我自己的基于 java.util.linkedlist 的列表类,但我想限制可以做的事情。让我们说现在,我想要的唯一方法是 addFirst 方法。我正在创建一个单链表。我遇到的问题是 addFirst 似乎没有被识别,我不确定我是否在我自己的构造函数中正确创建了列表。这是我到目前为止的代码。
import java.util.LinkedList;
public class singleList {
singleList() {
new LinkedList();
}
// void add(name addName) {
// addFirst(addName);
// }
public static void main(String[] args) {
singleList nameList = new singleList();
name name1 = new name("John", "Smith");
nameList.add(name1);
System.out.println("LinkedList contains : " + nameList);
}
}
所以你可以看到我想要做的是创建一个名为 nameList 的列表,此时,它唯一能做的就是使用 add 方法,它应该调用 LinkedList 的 addFirst 方法,将元素添加到第一个在列表中的位置。这有意义吗?
我得到的第一个错误是它无法从我的 add 方法中找到符号“addFirst”,我也不确定我的 singleList 构造函数是否正确。
如果有人想知道,这是为了学校作业。
这是修改后的代码,我从这里的第一个答案中得到了一些建议,看起来与另一个相似。
public class SingleList {
private LinkedList internalList;
SingleList() {
internalList = new LinkedList();
}
void add(name addName) {
internalList.addFirst(addName);
}
String get(int index) {
return internalList.get(index).toString();
}
public static void main(String[] args) {
SingleList nameList = new SingleList();
name name1 = new name("John", "Smith");
nameList.add(name1);
String getter = nameList.get(0);
System.out.println("LinkedList contains : " + nameList.get(0));
}
}
【问题讨论】:
-
你想让你的“singleList”从java.util.LinkedList继承吗?然后你需要说“扩展”。另外:好的做法是将您的类命名为“SingleList”(您为该类创建的实例可以命名为“singleList”)。
-
Extends 有效,但随后它允许直接访问任何linkedList 实现,我不希望这样。例如,我不希望能够使用 addLast 添加到列表的后面。我将把我的 singleList 的命名修改为 SingleList。谢谢。
标签: java class collections constructor linked-list