初学者javaq对T的扩展
我是一名学习java代码的初学者,当时正在实现一个红黑树数据结构。我在主类中为节点创建了一个类,并使用了T 然而,下面的一行初学者javaq对T的扩展,java,struct,tree,binary,Java,Struct,Tree,Binary,我是一名学习java代码的初学者,当时正在实现一个红黑树数据结构。我在主类中为节点创建了一个类,并使用了T 然而,下面的一行 RedBlackNode<T> nil =new RedBlackNode<T>(mainkey); RedBlackNode nil=新的RedBlackNode(主键); 由于未标识“T”数据类型的用法,因此给出了一个错误。我正在努力学习Comparable的用法,但无法解决这个问题。任何帮助都将不胜感激 public class Main
RedBlackNode<T> nil =new RedBlackNode<T>(mainkey);
RedBlackNode nil=新的RedBlackNode(主键);
由于未标识“T”数据类型的用法,因此给出了一个错误。我正在努力学习Comparable的用法,但无法解决这个问题。任何帮助都将不胜感激
public class Main {
public void main(String[] args) {
System.out.println("Hello World! qNew");
int mainkey=10;
System.out.println(mainkey);
RedBlackNode<T> nil =new RedBlackNode<T>(mainkey);
//RedBlackNode<T> root=nil;
//System.out.println(nil.key);
}
public class RedBlackNode<T extends Comparable <T>>
{
public static final int BLACK = 0; //Enumerating Colors with numbers for
public static final int RED = 1; // Color of node
public T key;
RedBlackNode<T> parent; //Parent Node
RedBlackNode<T> left; //Left Child Node
RedBlackNode<T> right; //Right Child Node
public int numLeft=0; //No of elements to left of a node
public int numRight=0; //No of elements to right of a node
public int color; //Color of each node
//Default constructor to initialize
RedBlackNode()
{
color=BLACK;
numLeft=0;
numRight=0;
parent=null;
left=null;
right=null;
}
//Constructor to initialize key value of the node
RedBlackNode(T key)
{
this();
this.key=key;
}
}
}
公共类主{
公共void main(字符串[]参数){
System.out.println(“helloworld!qNew”);
int主键=10;
System.out.println(主键);
RedBlackNode nil=新的RedBlackNode(主键);
//RedBlackNode root=nil;
//System.out.println(无键);
}
公共类RedBlackNode
{
public static final int BLACK=0;//使用数字枚举颜色
public static final int RED=1;//节点的颜色
公钥;
RedBlackNode父节点;//父节点
RedBlackNode left;//左子节点
RedBlackNode right;//右子节点
public int numLeft=0;//节点左侧的元素数
public int numRight=0;//节点右侧的元素数
public int color;//每个节点的颜色
//要初始化的默认构造函数
RedBlackNode()
{
颜色=黑色;
numLeft=0;
numRight=0;
parent=null;
左=空;
右=空;
}
//构造函数初始化节点的键值
红黑节点(T键)
{
这个();
这个。键=键;
}
}
}
T表示您希望它是什么。在编写类时,您使用大写字母T或G,但在使用时,它需要知道T是什么
如果节点中有一个Person类作为数据,我会这样使用它RedBlackNode parent=new RedBlackNode()代码>实际上这起作用了:
RedBlackNode nil=新的RedBlackNode(主键)代码>
似乎通过跳过数据类型,Java自动使用作为参数提供的数据类型为什么您希望这样做?什么是T
呢?我怀疑你想要RedBlackNode nil=new RedBlackNode(主键)代码>-实例化泛型类型时,需要指定类型参数。