微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TreeMap<?,?> 不能转换为 TreeMap<String,Double>?

如何解决TreeMap<?,?> 不能转换为 TreeMap<String,Double>?

我正在 Java 中使用 TreeMap 进行练习,但遇到了必须使用 TreeMap 构造函数的情况,我找不到任何方法来处理它,我正在这里编写程序的一部分,任何人都可以帮助我用这个? 这个函数应该返回什么,我该如何处理

错误:java.util.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 举报,一经查实,本站将立刻删除。