链接列表数组Java

时间:2017-06-19 02:32:23

标签: java arrays list linked-list

我正在尝试制作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();
        }

2 个答案:

答案 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

它要求您将数组声明为LinkedListList数组(不是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>。数组的元素类型不能是泛型类型。这是历史原因的特殊性,我们只需忍受它。