gpt4 book ai didi

java - 调试 Java 泛型比较器

转载 作者:行者123 更新时间:2023-11-29 03:07:58 25 4
gpt4 key购买 nike

class MyComparator<K,V> implements Comparator<Map.Entry<K,List<V>>> {

public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {

V v1 = me1.getValue();
V v2 = me2.getValue();

if(v1.size() > v2.size())
return 1;
else if(v1.size() < v2.size())
return -1;
else
return 0;
}
}

需要帮助。

错误:

    javacode$ javac -Xdiags:verbose Anagrams1.java
Anagrams1.java:6: error: > expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: '(' expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: > expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: < expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: illegal start of expression
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: <identifier> expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: '(' expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: illegal start of type
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: ';' expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: ';' expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
Anagrams1.java:6: error: ';' expected
public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
^
11 errors

最佳答案

改变

public <Map.Entry<K,List<V>>> int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2)

public int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2)

不应在类声明和方法声明中都指定类型参数。

方法本身应该是:

public int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {

List<V> v1 = me1.getValue(); // changed here
List<V> v2 = me2.getValue(); // changed here

if(v1.size() > v2.size())
return 1;
else if(v1.size() < v2.size())
return -1;
else
return 0;
}

因为您正在比较两个 Map.Entry<K,List<V>>实例,而不是 Map.Entry<K,V> .

关于java - 调试 Java 泛型比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31096623/

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