gpt4 book ai didi

java - Collections.sort 错误 : no suitable method found for sort

转载 作者:行者123 更新时间:2023-11-29 08:34:38 28 4
gpt4 key购买 nike

我有这个类名对:

public class Pair<K,V> implements Map.Entry<K,V> , Comparable<V>{

private K key;
private V value;

public Pair(){}

public Pair(K _key, V _value){
key = _key;
value = _value;
}

//---Map.Entry interface methods implementation
@Override
public K getKey() {
return key;
}

@Override
public V getValue() {
return value;
}

@Override
public V setValue(V _value) {
return value = _value;
}
///---Map.Entry interface methods implementation

@Override
public int compareTo(V o) {
return 0;
}
}

在程序类中我有这个方法:

private static <K,V> void MinMax2(Vector<Pair<K,V>> vector) {

// Collections.sort() sorts the collection in ascending order
Iterator iterator = vector.iterator();

Collections.sort(vector);
}

在这一行:

Collections.sort(vector);

我收到这个错误:

Error:(41, 20) java: no suitable method found for sort(java.util.Vector<Pair<K,V>>)
method java.util.Collections.<T>sort(java.util.List<T>) is not applicable
(inference variable T has incompatible bounds
equality constraints: Pair<K,V>
upper bounds: V,java.lang.Comparable<? super T>)
method java.util.Collections.<T>sort(java.util.List<T>,java.util.Comparator<? super T>) is not applicable
(cannot infer type-variable(s) T
(actual and formal argument lists differ in length))

我实现了 Comparable 接口(interface)。为什么会出现上述错误?

最佳答案

你的类必须实现 Comparable<Pair<K,V>>而不是 Comparable<V>

想一想,您正在尝试对 Pair<K,V> 的列表进行排序对象。为了让 Collections 库知道如何对其进行排序,它必须知道是否有一个 Pair<K,V>对象小于、大于或等于另一个 Pair<K,V>对象。

您反而描述了用于比较 Pair<K,V> 的比较操作至 V

关于java - Collections.sort 错误 : no suitable method found for sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45090965/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com