如何解决TreeMap<?,?> 不能转换为 TreeMap<String,Double>?
我正在 Java 中使用 TreeMap 进行练习,但遇到了必须使用 TreeMap 构造函数的情况,我找不到任何方法来处理它,我正在这里编写程序的一部分,任何人都可以帮助我用这个? 这个函数应该返回什么,我该如何处理
错误:java.util.TreeMap
public TreeMap<?,?> createMatchesMap(String cricketDataset)
{
TreeMap<String,Double> tm = new TreeMap<String,Double>();
String[] str = cricketDataset.split("\\|");
for(int i=0;i<str.length;i++) {
String[] str1 = str[i].split(",");
Double c = 0.0;
int c1=0;
if(str1[0].equals("1")) {
for(int j=0;j<str.length;j++) {
String[] str2 = str[j].split(",");
if(str2[1].equals(str1[1]) && str2[0].equals("1")) {
Double score = Double.parseDouble(str2[2]);
c=c+score;
c1+=1;
}
}
tm.put(str1[1],c/c1);
}
}
return tm;
}
解决方法
这与协方差和逆变有关(参见 https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science))。简而言之,如果你能做到这一点:
List<String> ls = new ArrayList<>();
List<Object> lo = ls;
然后您可以在下一步中执行此操作
lo.add(new Double(1.3));
这会在我们的字符串列表中添加一个 Double(因为 lo 指的是与 ls 相同的对象)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。