Java 具有数组字符串的DoubleLinkedList具有节点的泛型元素

Java 具有数组字符串的DoubleLinkedList具有节点的泛型元素,java,generics,Java,Generics,我有一个带有一个元素的双链接节点,我将这个类DNode实现为我的DoubleLinkedList类 我已经设置好了所有内容,但我想创建一个DoubleLinkedList,其中E元素是String[2]。我该怎么做 我想这样做: package pt.ips.pa.model.modelo; import pt.ips.pa.model.tads.DoubleLinkedList; public class Ranking { private DoubleLinkedList<S

我有一个带有一个元素的双链接节点,我将这个类DNode实现为我的DoubleLinkedList类

我已经设置好了所有内容,但我想创建一个DoubleLinkedList,其中E元素是String[2]。我该怎么做

我想这样做:

package pt.ips.pa.model.modelo;

import pt.ips.pa.model.tads.DoubleLinkedList;

public class Ranking {
   private DoubleLinkedList<String[]> ranking;

   public Ranking() {
      this.ranking = new DoubleLinkedList<>();
   }    
}
以下是DoubleLinkedList类:


下面是执行此操作的代码:

DoubleLinkedList<String[]> ranking = new DoubleLinkedList<String[]>;
DNode<String[]> node = new DNode<String[]>(new String[2], null, null);
ranking.add(0, node);
我还建议在DNode中添加第二个构造函数,该构造函数只接受E元素作为参数,并在list类中添加一个append方法,将元素置于trail位置,然后代码将简化为:

DoubleLinkedList<String[]> ranking = new DoubleLinkedList<String[]>;
DNode<String[]> node = new DNode<String[]>(new String[2]);
ranking.append(node);
另外,正如David Conrad所指出的,Java不允许使用泛型限制数组的大小。泛型类型基本上在编译后被删除,并且在运行时不存在。任何人都可以在运行时使用类DoubleLinkedList并添加包含较大字符串数组的新数据节点

如果确实要限制底层数组的大小,则必须更改DoubleLinkedList中的代码以执行e.size您可以使用java.util.Pair而不是String[2]。否则,您将不得不使用字符串[]


您不需要在问题中包含默认模板许可证标题注释。这里有很多代码,但我不确定问题到底是什么。我只想创建一个:DoubleLinkedList如何实现这一点。抱歉,您没有在类型中指定数组的大小。那只是一个DoubleLinkedList——一个字符串数组的DoubleLinkedList。但是在指定了它的大小之后,我该怎么做呢?Java类型系统不允许您将类型限制为只有特定大小的数组。使用新运算符创建数组时可以指定大小,但如果有String[]类型的变量,则可以为其指定任意大小的数组。Thx mate非常感谢您的帮助
DoubleLinkedList<String[]> ranking = new DoubleLinkedList<String[]>;
DNode<String[]> node = new DNode<String[]>(new String[2], null, null);
ranking.add(0, node);
DoubleLinkedList<String[]> ranking = new DoubleLinkedList<String[]>;
DNode<String[]> node = new DNode<String[]>(new String[2]);
ranking.append(node);
DoubleLinkedList<Pair<String, String>>