Java 实例化泛型类
我试图使用泛型实现SkipList,但遇到了一个问题。我似乎无法实例化节点 节点类:Java 实例化泛型类,java,list,generics,skip-lists,Java,List,Generics,Skip Lists,我试图使用泛型实现SkipList,但遇到了一个问题。我似乎无法实例化节点 节点类: public class SkipNode<E> { private E key; private Integer value; //Links private SkipNode<E> up, down, left, right; //Head and tail keys. Cannot add before -oo or after +oo
public class SkipNode<E>
{
private E key;
private Integer value;
//Links
private SkipNode<E> up, down, left, right;
//Head and tail keys. Cannot add before -oo or after +oo.
public static String negInf = "-oo";
public static String posInf = "+oo";
public SkipNode() {}
public SkipNode(E k, Integer v)
{
key = k; // Add key
value = v; // Assign value
up = down = left = right = null; // Set links to null
}
//Getters and setters down here
}
公共类SkipNode
{
私钥;
私有整数值;
//链接
专用SkipNode向上、向下、左、右;
//头键和尾键。不能在-oo之前或+oo之后添加。
公共静态字符串negInf=“-oo”;
公共静态字符串posInf=“+oo”;
公共SkipNode(){}
公共SkipNode(ek,整数v)
{
key=k;//添加密钥
value=v;//赋值
up=down=left=right=null;//将链接设置为null
}
//这里有能手和二传手
}
列表类:
import java.util.Random;
public class SkipList<E>
{
private SkipNode<E> head;
private SkipNode<E> tail;
private int size, height;
private Random rand;
public SkipList()
{
SkipNode<E> p1, p2;
p1 = new SkipNode<E>(SkipNode.negInf, null);
}
}
import java.util.Random;
公开课技工
{
私用SkipNode头;
私家鸡尾;
私人int尺寸、高度;
私有随机兰德;
公共技工()
{
SkipNode p1,p2;
p1=新的SkipNode(SkipNode.negInf,null);
}
}
错误出现在p1=new SkipNode(SkipNode.negInf,null)上
我尝试删除该行上的
,并将其更改为:p1=newskipnode(SkipNode.negInf,null)代码>,这没有多大意义,但我想我会试试。我还尝试在参数中使用“-oo”,但它希望我将节点构造函数参数更改为String和Integer
我做错了什么?初始化类时需要使用具体类型
SkipNode<String> p1 = new SkipNode<String>(SkipNode.negInf, null);
SkipNode p1=新的SkipNode(SkipNode.negInf,null);
谢谢,你能回答我其他评论中的问题吗?OP的问题:每次我想在列表中添加一些东西时,我是否必须这样做?如果我不知道要传递的数据类型怎么办?@yayuSkipNode
是泛型的,因此您必须在实现时定义类型。@Reimeus哦,对了!真不敢相信我竟然忘了。谢谢你们两位的帮助!