我正在尝试在 Java 中实现一个列表 ADT。我遵循了 Goodrich 的一本关于数据结构的书。
我创建了 2 个名为 Position 的接口:
public interface Position {
Object element()throws InvalidPositionException;
}
和 List ,它具有列表等的方法声明first(), last()
。
现在,我有一个名为 DNode.java 的类,它实现了 Position 并具有为特定节点分配前一个和下一个元素的方法。
最后,我有实现 List 接口的 NodeList.java。
在此,有一种insertBefore()
方法将 Position 和 Object 作为输入,并对列表进行更改以在特定位置之前插入节点。
现在,这个方法是从作为主类的 ListMain 类中调用的。
Object p = (Object) br.readLine();
nl.insertAfter((Position)p, element);
nl.display();
基本上,我以字符串的形式从用户那里获取输入,将其转换为 Object 类型,然后将其转换为 Position 类型。当我这样做时,我得到一个类转换异常,上面写着
java.lang.String 不能转换为 ListPackage.Position
有人可以告诉我如何进行适当的类型转换。或者我的方法是错误的,我应该做其他事情吗?
我是数据结构的新手。因此,任何帮助将不胜感激。非常感谢您提前。