如何让对象不引用任何东西?

时间:2013-10-31 10:07:13

标签: java

我被要求在没有任何API的情况下创建自己的链接列表。我有一个数据数组,它是我的元素,然后我的下一个数组,它包含索引引用,用于指向数据数组的下一个值。例如:

int nil = -1
Comparable [] data = new Comparable {1, 4, 5, 2, 18, 9}
int [] next = new int {1, 2, 3, 4, 5, nil}

因此数据中的1指向数据中的4,因为在数据中相应的数组中,数据中的1是接下来的1,这是将用作数据中下一个点的索引的值。

我的问题是我的零值。有人告诉我,将它设置为-1将有效结束列表,但每当我尝试这个时它会被设置为0,因此我尝试的任何东西都会循环,因为结束值将指向第一个值。为什么会发生这种情况,我该怎么做才能避免这种情况?

2 个答案:

答案 0 :(得分:2)

在java引用类型中可以分配null引用。引用类型java.lang.Integer是原语int的包装器。因此,如果您使用它,您应该能够使用null

Integer[] next = { 1, 2, 3, 4, 5, null };

答案 1 :(得分:0)

Linked-List背后的想法是,如果没有使用任何底层数据结构,您有指向下一个节点的节点(以及前面的节点,如果它是双向链接列表)。 (您正在创建数据结构。)

    public class Node
    {
        public Node Prev { get; set; }
        public Node Next { get; set; }

        public int Value { get; set; }
    }

然后,您可以构建一个使用节点构建结构的LinkedList结构。

    public class LinkedList
    {
        private Node head = null;
        private Node tail = null;

        public void Add(Node node)
        {
            //Add code...
        }

        public void Remove(Node node)
        {
            //Remoce code...
        }

        //etc...
    }