链表的链表java

时间:2017-05-01 10:38:16

标签: java collections linked-list

所以我正在制作应用,我需要使用链接列表的链接列表。 这是我目前的代码:

public class server{
private List <Group> serverList= new List <Group>();

现在,在班级&#34;组&#34;:

List <user> groupList= new List <user>();
groupList(1)=new Node (null, T x);

并且,它只是工作......在我完成这项工作之后,使用其他节点功能将变得更加容易。 我只是一名高中生,所以不要评判我。 我使用unit4 pack

编辑 unit4是Eclipse的一个扩展包,由以色列教育部制作。该软件包允许您使用Node,List,Stack,Queue和BinTreeNode,而无需每次都将它们写下来。

1 个答案:

答案 0 :(得分:1)

我想,您的List<User>java.util.List 如果这是正确的,那么这是一个接口 - 只是一种类可以向其用户保证的“合同”。

您无法实现界面,只是该界面的实现 - 例如java.util.LinkedList

在作业的左侧,可能是最通用的界面是一件好事,在作业的右侧,您必须指定该界面的所需实现。在你的情况下,这可能看起来像

import java.util.List;
import java.util.LinkedList;


List<User> = new LinkedList<>();

(我故意遗漏了第二个<User>并且刚刚写了<>,因为从Java版本7开始就允许这样做,并且提高了可读性。

代码中的下一个错误是,您无法使用

设置List元素
groupList(1)=new Node (null, T x);

分配元素的方法是public E set(int index, E element),其中E是列表元素的类型。所以你的代码看起来像

groupList.set(1, new Node(null, T x));

还有一些错误。

首先,列表从索引0(零)开始,因此要填写第一个元素,您将再次调用groupList.set(0, ...),这是不正确的。 Set仅替换已存在的元素,但如果索引超出列表的现有边界,则会抛出异常。要添加新元素,您必须使用方法public void add(int index, E element)

groupList.add(new Node(null, T x));

这会将类Node的新对象添加到您(此时为空)列表的末尾。

仍然是错误 - new Node(null, T x)的号召。似乎是您从文档或声明中复制了它,但没有正确填写所有参数。第二个参数(T x)表明构造函数需要一些类型为T的对象(与User中的参数List<User>一样,这是一个通用变量。)

由于你没有在你的问题中给我们Node的包裹(我不知道“uni4 pack”,所以也许解决方案在那里)我在那里帮不了你。

您也可以输入null作为参数 - 如果这足以满足您的需求。

groupList.add(new Node(null, null));

如果编译器无法编译,则可以将第二个参数转换为类型:

groupList.add(new Node(null, (String)null));

看起来很奇怪,但有时编译器需要提示; - )。

如果您更新问题并提供有关您必须解决的问题的详细信息,我可以在此处为您提供更具体的帮助。