Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RBTree的泛型实现_Java_Generics - Fatal编程技术网

Java RBTree的泛型实现

Java RBTree的泛型实现,java,generics,Java,Generics,我正试图在泛型的帮助下用Java实现RBTree,因为我需要这个结构在项目的未来部分出现 我有一节课: public class RBTree<T extends Comparable<T>> { ... } public class RBNode<T extends Comparable<T>>{ ... private T key; ...} 和RBNode类: public class RBTree<T extends Comp

我正试图在泛型的帮助下用Java实现RBTree,因为我需要这个结构在项目的未来部分出现

我有一节课:

public class RBTree<T extends Comparable<T>> { ... }
public class RBNode<T extends Comparable<T>>{ ...
 private T key; 
...}
和RBNode类:

public class RBTree<T extends Comparable<T>> { ... }
public class RBNode<T extends Comparable<T>>{ ...
 private T key; 
...}
现在问题来了。我有一个Product类,它有一个ProductData对象等等。我需要我的树来保存关于产品到期日期的信息,并且在这些日期中我需要能够找到产品

我现在可以这样编写测试代码:

ProductDate p = new ProductDate(new ProductData("Jahoda", "12345678", new Date(), new Date(), 555, 10));
ProductDate r = new ProductDate(new ProductData("Mandarinka", "987654321", new Date(), new Date(), 111, 12));
ProductDate d = new ProductDate(new ProductData("Malina", "987654321", new Date(), new Date(), 222, 13));

RBTree<Date> produkty = new RBTree<Date>();
produkty.insert(p.getKey());
produkty.insert(r.getKey());
produkty.insert(d.getKey());
但在这里,我将丢失指向给定产品的指针。如何预防


如果是的话,我可以向github提供完整的代码。

如果您希望它用作映射,而不是集合,也就是说,可以通过键获取值,您可以稍微更改RBNode类,以便它同时存储:键和值。 它可以是这样的:

public class RBNode<K extends Comparable<K>, V> {
    K key;
    V value;
    ...
}

然后,如果要获取给定日期的产品,则应将ProductDate实例用作键,将ProductData实例用作值。

1。你说的指针是什么意思?Java中没有指针。2.为什么要使用新的X新的X。。。而不仅仅是新的X…?不是默认指针,而是引用,抱歉我的错误。。。我不使用新的X。。。但是new PData new PData,这是一个区别。ProductDate是Product类的扩展类,它有ProductData引用。JDK的TreeMap是一个带有泛型的红黑树实现。是的,@m3th0dman,但我相信这对我的老师不起作用。