我试图创建一个方法,反向链接列表。我有一个创建链表的类
public class LinkedList<t> {
public class Node {
t item;
Node next;
}
private Node firstNode;
public Node getFirstNode() { return this.firstNode; }
public void appendToTail(t item){
if(this.firstNode == null){
this.firstNode = new Node();
this.firstNode.item = item;
return;
}
Node current = this.firstNode;
while(current.next != null){
current = current.next;
}
current.next = new Node();
current.next.item = item;
}
}
反转链表的方法在我的“Main”类中
public static LinkedList reverseLinkedList(LinkedList<Integer> l){
LinkedList.Node current = l.getFirstNode();
LinkedList<Integer> reverse = new LinkedList<Integer>();
LinkedList.Node head = reverse.getFirstNode();
while(current != null){
LinkedList.Node newHead = new reverse.Node();
newHead.item = current.item;
newHead.next = head;
head = newHead;
current = current.next;
}
return reverse;
}
对于我想添加到新反向链表前面的每个新节点,我需要创建一个“node”类的新实例,该类包含在“LinkedList”类中。“Node”类不能是静态的,因为其“item”属性设置为与“LinkedList”类型相同的泛型类型。所以,我需要一个类“LinkedList”的实例,以便访问“Node”类并创建其对象。在上面的代码中,我使用了“LinkedList”上的“reverse”实例来实现这一点。但我得到一个错误,说“包反向不存在”。这一定是因为我想把它当作一个包。我该如何解决这个问题?
我必须能够通过将“Node”类与“LinkedList”分离来解决这个问题。还有什么别的我可以不用做的吗?
我认为将节点
创建为静态节点没有问题。这样做能解决问题吗?我更改了类型参数的名称,以便更清楚地声明了什么以及何时重用现有的类型参数。
public class TestList<T> {
private Node<T> head;
private static class Node<X> {
X element;
Node<X> next;
}
public void add( T element ) {
Node<T> node = new Node<T>();
node.element = element;
if( head != null )
node.next = head;
head = node;
}
public T get() {
return head.element;
}
}
class External {
public static <Z> void reverse( TestList<Z> arg ) {
TestList.Node<Z> temp = new TestList.Node<>();
temp.element = arg.get();
// etc.
}
}
如果只需要反转linkedlist,请使用Collections。reverse方法,该方法将列表作为参数,并返回反向列表。
更新此行:
LinkedList.Node newHead = new reverse.Node();
,是吗
LinkedList.Node newHead = reverse.new Node();
问题内容: 我正在尝试开发在线酒店预订系统。我有一个主类,它从用户那里获取输入信息,例如他们的姓名,他们的付款信息和其他数据字段,并使用该信息作为对象。我有另一个名为的类,其中包含每个对象的列表。我遇到的问题是我无法找出一种将对象添加到对象列表中的方法。这是一些代码: 我不知道如何获取新对象作为类中方法的参数传递。我只是束手无策,希望有人能帮助我慢跑。 谢谢你的帮助。 问题答案: 让makeRes
我希望能够访问一个非静态变量和非静态方法从另一个类,而不创建一个新的对象。 在我们项目的现有代码中,由于新对象的创建,它的创建类实例化问题。 } //Class2//这里继承的类配置是另一个类,例如Class3,它是必需的,我们不必扩展Class1,即DataBaseQueries 公共类CommonActions扩展配置{ 公共整数ecSample{G_IntSavedValueValue=EC
问题内容: 我正在使用Apache Commons EqualsBuilder来为非静态Java内部类构建equals方法。例如: 除了声明方法之外,是否有可以参考的引用的语法?有点像(不起作用)? 问题答案: 没有。 最好的方法可能是您所建议的:将getFoo()方法添加到内部类中。
问题内容: 考虑以下嵌套类。 问题答案: 您可以像这样声明一个对象数组。 并实例化它们,您可以在类中执行类似的操作。
这是一个非常基本的OOP问题。但我对全班的行为不太清楚。所以假设我有a类: 现在,当我调用类A的方法输出: 产出将是: 附注。希望我洗清了自己的罪名。
问题内容: 用Java开发一个简单的井字游戏。 我有一个名为的课程。此类应包含有用的游戏方法。游戏发生在另一个班级。 中的方法是。该方法应该将所有9个按钮(井字游戏板)上的文本设置为空白,再次将它们设置为启用,然后将变量设置为1。 这是它的代码: 是游戏主类中的JButtons数组。 该方法以前在游戏的主要类中使用。但是现在它在不同的类中,它无法到达该类中的按钮并对其进行操作。 我在中创建了get