之间有什么区别
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
}
你可能会认为一个List
的HashMap
S的关系是一个List
的Map
S,但有一个很好的理由,为什么它不是:
假设您可以执行以下操作:
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)
所以这就是为什么List
的HashMap
不是应该是一个List
的Map
秒。
问题内容: 我是Java的新手,我需要列出列表列表。我可以在python中做到这一点,因为列表的元素可以是列表,因此在嵌入式列表中将引用列表,并且将引用嵌入式列表的zeroeth元素。有什么简单的方法可以在Java中实现此行为? 问题答案: 所有其他答案在技术上都是正确的,但是恕我直言,如果您实施了粗略的列表列表,您将无法在正确的抽象级别上处理数据。例如,我很确定列表列表在您的业务领域中已经意味着
问题内容: 让我们来: 我正在寻找的结果是 并不是 非常感激 问题答案: 怎么样 对于python 3.x,用户可以使用
问题内容: 运行代码 退货 因此,每次在列表列表中每次更新元组(列表)的第一个参数,但第二个参数list [0]却没有更新。有人可以解释这里发生的事情并提出解决方法吗?我想输出 问题答案: 列表是可变类型-为了创建副本(而不只是传递相同的列表),您需要明确地这样做: 但是,已经是Python内置的名称-最好不要将该名称用作变量。这是一个不用作变量名并复制的版本: 请注意,我演示了两种不同的方法来复
问题内容: 解析后,我的文件“ s”包含 因此,我需要在attributeIDGet列表中的冒号之后获取所有数字。我知道有几种方法可以做到。但是有什么方法可以 直接转换为。 由于以下代码抱怨类型不匹配,因此我尝试执行Integer.parseInt,但我想这不适用于List。这是String。 问题答案: 不,您需要遍历数组
我在Windows上使用Docker,当我试图用这个命令拉一个PHP图像时 我收到了这条消息: 我如何解决这个问题?
问题内容: 如何合并列表列表? 进入 如果我可以在合并列表之前在每个项目的开头和结尾添加一个值(例如html标签),那就更好了。 即,最终结果将是: 问题答案: 要串联列表,可以使用 要添加HTML标签,您可以使用列表推导。