【发布时间】:2020-02-11 08:49:36
【问题描述】:
我必须从头开始创建一个对象的 LinkedList,我根本无法理解它,我不确定我是否需要一个用于linkedlist 和节点的类,或者我是否可以在对象中做到这一点类本身。我也在使用场景构建器在 JavaFx 上执行此操作,因此我需要通过控制器类的用户输入添加对象。
我尝试将节点和链表分离到它们自己的类中,但这让我更加困惑。
这是我当前的 Show 对象字段和构造函数
public class Show {
private String title;
private int runningTime;
private String startDate, endDate;
private int ticketPrice;
public Node head, next;
public Show (String title, int runningTime, String startDate, String
endDate, int ticketPrice) {
this.title = title;
this.runningTime = runningTime;
this.startDate = startDate;
this.endDate = endDate;
this.ticketPrice = ticketPrice;
next=null;
}
当我尝试调用我在 Show 类中公开的头部时,它会给出错误“无法从静态上下文引用非静态字段 'head'”
我正在寻找对象特定链表的正确结构。
【问题讨论】:
-
你不能在主静态函数中使用'head',你可以在同一个项目的另一个文件中创建主函数并在那里创建 Show 对象,或你可以将 Show 中的所有内容设为静态。 注意:在java中你可能想要使用setter和getter方法
-
如果您将元素与链表实现混合使用,则结果将无法重用。尝试使用
Object(或通过泛型指定的类型)作为每个节点的内容类型。不过,最好对用户完全隐藏节点。java.util.LinkedList执行此操作(O(1) 插入/删除可通过ListIterator获得)。 -
@JoshW。我应该指出,我也有 setter 和 getter 方法,虽然没有额外的代码,但我只是生成了它们,让它们提供更简单的解决方案吗?
-
@Steven Guiry 我想说的是,如果你在静态方法中使用“head”,例如在
Show类中的public static void main(...){...}方法中,您会得到该错误代码
标签: java javafx linked-list singly-linked-list