实现List <E>:我需要一个新类吗?

Ale*_*ire 2 java implementation list

首先,我过去几周一直在研究Java,所以我还没有太多的经验.

这更像是一个理论问题.我想创建一个简单的列表.

所以首先我创建了一个我指定了一些方法的类.我希望它是通用的,所以我可以使用任何类型.

  public interface List<E> 
Run Code Online (Sandbox Code Playgroud)

现在我需要实现它,所以我创建了:

    public class MyList<E> implements List<E>
Run Code Online (Sandbox Code Playgroud)

现在,我需要两个属性:

 private E element;
 private MyList<E> next;
Run Code Online (Sandbox Code Playgroud)

一个将保持我的泛型类型,另一个将是下一个元素的链接.首先,我不知道这是否是正确的写作方式.如果我把这个属性留在这个类中,它会正常工作吗?

其次,我一直在考虑是否最好创建另一个类,比如一个Box类,它将包含这两个字段,从而在我的实现过程中使操作更容易.

可能是一个愚蠢的问题,但我正在努力学习并了解实现这一目标的最佳方法.

谢谢你的时间.

ars*_*jii 9

我想你正在尝试实现一个单链表.现在回答你的问题,我认为你创建一个Box像你提到的(通常称为Node)类是有益的.所以你的实现可能如下所示:

public class MyList<E> implements List<E> {
    private Node<E> head;

    private static class Node<E> {
        private E element;
        private Node<E> next;

        public Node(E element, Node<E> next) {
            this.element = element;
            this.next = next;
        }

        // ...
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

MyList将持有一个Node连接到其他Nodes 链的单个.如果你看一下,这就是实际java.util.LinkedList类的编写方式.