首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeMap和SortedMap转换语句

TreeMap和SortedMap转换语句
EN

Stack Overflow用户
提问于 2018-11-13 13:44:06
回答 2查看 278关注 0票数 2

这句话有什么问题呢?

代码语言:javascript
复制
private final HashMap<String, SortedMap<Long, Long>> abc;
abc = new HashMap<String, TreeMap<Long, Long>>;

它显示这样的错误:SortedMap不能转换为TreeMap?我怎么才能做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2018-11-13 13:49:29

如果您真的希望能够以这种方式分配它,那么您是否可以使用带有绑定? extends SortedMap的通配符。例如:

代码语言:javascript
复制
private final Map<String, ? extends SortedMap<Long, Long>> abc;
...
abc = new HashMap<String, TreeMap<Long, Long>>();

也就是说,在创建新的外部hashmap实例时,您不必指定嵌套的映射类型。只需将其作为SortedMap保存。稍后,当您插入一个值时,它可以是新的TreeMap实例,因为它们实现了SortedMap。例如

代码语言:javascript
复制
private final Map<String, SortedMap<Long, Long>> abc;
...
abc = new HashMap<String, SortedMap<Long, Long>>();
abc.put("Test", new TreeMap<Long, Long>());

在缩短了这段用于类型推断的代码之后,赋值行可能如下所示:

代码语言:javascript
复制
abc = new HashMap<>();
abc.put("Test", new TreeMap<>());
票数 1
EN

Stack Overflow用户

发布于 2018-11-13 13:49:59

您尚未初始化您的HashMap。记得在实例化新对象时使用构造函数。

代码语言:javascript
复制
import java.util.*;
public class MyClass {
    public static void main(String args[]) {
        HashMap<String,SortedMap<Long,Long>> abc;
        abc = new HashMap<>();
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53274553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档