当前位置: 首页 > 面试题库 >

清单>列表>

谯和煦
2023-03-14
问题内容

之间有什么区别

List<Map<String, String>>

List<? extends Map<String, String>>

如果没有区别,使用的好处是? extends什么?


问题答案:

区别在于,例如

List<HashMap<String,String>>

是一个

List<? extends Map<String,String>>

但不是

List<Map<String,String>>

所以:

void withWilds( List<? extends Map<String,String>> foo ){}
void noWilds( List<Map<String,String>> foo ){}

void main( String[] args ){
    List<HashMap<String,String>> myMap;

    withWilds( myMap ); // Works
    noWilds( myMap ); // Compiler error
}

你可能会认为一个ListHashMapS的关系是一个ListMapS,但有一个很好的理由,为什么它不是:

假设您可以执行以下操作:

List<HashMap<String,String>> hashMaps = new ArrayList<HashMap<String,String>>();

List<Map<String,String>> maps = hashMaps; // Won't compile,
                                          // but imagine that it could

Map<String,String> aMap = Collections.singletonMap("foo","bar"); // Not a HashMap

maps.add( aMap ); // Perfectly legal (adding a Map to a List of Maps)

// But maps and hashMaps are the same object, so this should be the same as

hashMaps.add( aMap ); // Should be illegal (aMap is not a HashMap)

所以这就是为什么ListHashMap不是应该是一个ListMap秒。



 类似资料:
  • 问题内容: 我是Java的新手,我需要列出列表列表。我可以在python中做到这一点,因为列表的元素可以是列表,因此在嵌入式列表中将引用列表,并且将引用嵌入式列表的zeroeth元素。有什么简单的方法可以在Java中实现此行为? 问题答案: 所有其他答案在技术上都是正确的,但是恕我直言,如果您实施了粗略的列表列表,您将无法在正确的抽象级别上处理数据。例如,我很确定列表列表在您的业务领域中已经意味着

  • 问题内容: 让我们来: 我正在寻找的结果是 并不是 非常感激 问题答案: 怎么样 对于python 3.x,用户可以使用

  • 问题内容: 运行代码 退货 因此,每次在列表列表中每次更新元组(列表)的第一个参数,但第二个参数list [0]却没有更新。有人可以解释这里发生的事情并提出解决方法吗?我想输出 问题答案: 列表是可变类型-为了创建副本(而不只是传递相同的列表),您需要明确地这样做: 但是,已经是Python内置的名称-最好不要将该名称用作变量。这是一个不用作变量名并复制的版本: 请注意,我演示了两种不同的方法来复

  • 问题内容: 解析后,我的文件“ s”包含 因此,我需要在attributeIDGet列表中的冒号之后获取所有数字。我知道有几种方法可以做到。但是有什么方法可以 直接转换为。 由于以下代码抱怨类型不匹配,因此我尝试执行Integer.parseInt,但我想这不适用于List。这是String。 问题答案: 不,您需要遍历数组

  • 我在Windows上使用Docker,当我试图用这个命令拉一个PHP图像时 我收到了这条消息: 我如何解决这个问题?

  • 问题内容: 如何合并列表列表? 进入 如果我可以在合并列表之前在每个项目的开头和结尾添加一个值(例如html标签),那就更好了。 即,最终结果将是: 问题答案: 要串联列表,可以使用 要添加HTML标签,您可以使用列表推导。