Java 如何子类化ConcurrentSkipListMap并设置其比较器?
我试图将ConcurrentSkipListMap子类化,并将其设置为不带任何锁的比较器。 以下是我所拥有的:Java 如何子类化ConcurrentSkipListMap并设置其比较器?,java,subclass,Java,Subclass,我试图将ConcurrentSkipListMap子类化,并将其设置为不带任何锁的比较器。 以下是我所拥有的: // the subclass public class Queue<V, K> extends ConcurrentSkipListMap<K, V> { public Queue(Comparator<? super K> queueComparator) { // TODO Auto-generated constr
// the subclass
public class Queue<V, K> extends ConcurrentSkipListMap<K, V> {
public Queue(Comparator<? super K> queueComparator) {
// TODO Auto-generated constructor stub
super(queueComparator);
}
public Queue(QueueComparator<Integer> queueComparator) {
// TODO Auto-generated constructor stub
super((Comparator<? super K>) queueComparator);
}
}
//the comparator (QueueComparator)
public class QueueComparator<T> implements Comparator<T> {
@Override
public int compare(T o1, T o2) {
// TODO Auto-generated method stub
return 0;
}
}
// main class init the subclass
Queue queue= new Queue<Integer,MYCLASS>(new QueueComparator<Integer>());
//子类
公共类队列扩展了ConcurrentSkipListMap{
公共队列(Comparator第二个构造函数是垃圾。请删除它
您的代码不会编译,因为您构建了一个以MYCLASS为键、Integer为值的队列,但提供了一个比较器来对Integer实例而不是MYCLASS实例进行排序
我猜您想要的是整数作为键。如果是这样,那么队列的类型应该是queue
或者,您可以遵守将键放在第一位、值放在第二位的约定,并将队列声明更改为
public class Queue<K, V> extends ConcurrentSkipListMap<K, V> {
公共类队列扩展了ConcurrentSkipListMap{
请注意,子类化集合通常不是一个好主意。通常最好将集合封装在对象中。第二个构造函数是垃圾。请删除它
您的代码不会编译,因为您构建了一个以MYCLASS为键、Integer为值的队列,但提供了一个比较器来对Integer实例而不是MYCLASS实例进行排序
我猜您想要的是整数作为键。如果是这样,那么队列的类型应该是queue
或者,您可以遵守将键放在第一位、值放在第二位的约定,并将队列声明更改为
public class Queue<K, V> extends ConcurrentSkipListMap<K, V> {
公共类队列扩展了ConcurrentSkipListMap{
注意,对集合进行子类化通常不是一个好主意。通常最好将集合封装在对象中