我正在尝试制作array of linked lists
我试图编写的程序有一个字符串数组的名称,但有些名称在数组的相同位置。
例如,如果名称morgan
位于array[0]
且john
也位于array[0]
,我该如何创建允许两个名称存储在同一个名称中的链接列表指数。我正在尝试复制separate chaining
碰撞解决方案。
是否可以使用LinkedList<String> inkedlist = new LinkedList();
如果我使用它,我该如何为每个数组索引创建一个新的链表?
for(int i = 0; i < array.length; i++){
array[i] = new LinkedList();
}
答案 0 :(得分:1)
我不知道我是否理解你的问题。这是你的问题。 你正在尝试创建一个链表列表该程序有一个字符串数组&#39;名字,
:如果添加正确,节点中有String名称,您将获得链接列表。
然而,有些名字处于同一位置&#39;数组。例如,如果名称morgan在数组[0]中并且john也在数组[0]中,我如何创建一个允许两个名称存储在同一索引中的链表。:如何在对象中添加一个Sting,它就是你想要的?
class Node{
String firstName;
String secondName;
Node next = null;
}
不确定我是否正确开始,但这是我到目前为止所做的
:首先应该从构造函数开始,然后创建添加,删除和其他函数。
public Class CustomList{
private CustomList head;
private int index = 0;
private Class Node{
private String firstName;
private String secondName;
private Node next;
**constructor**
public Node(String firstName, String secondName){
this.firstName = firstName;
this.secondName = secondName;
next = null;
}
}
**constructor**
public CustomList(){
head = null;
}
}
以上将在CustomList的相同索引中包含两个String值。 如果我理解错误的问题,或者您有任何疑问,请随时提出。
答案 1 :(得分:0)
它听起来并不那么简单,但是,你可以使用java.util.LinkedList
。
它要求您将数组声明为LinkedList
或List
数组(不是String
数组)。这有效:
List<String>[] array = new List[1000];
for (int i = 0; i < array.length; i++){
array[i] = new LinkedList<>();
}
但是,在我实例化数组的地方,我收到一条警告:Type safety: The expression of type List[] needs unchecked conversion to conform to List<String>[]
。人们原本期望new List<String>[1000]
可以工作,但事实并非如此。它给出了一个错误:Cannot create a generic array of List<String>
。数组的元素类型不能是泛型类型。这是历史原因的特殊性,我们只需忍受它。