有没有人可以告诉我为什么 HashMap
没有实现 Iterable
接口?
有没有人可以告诉我为什么 HashMap
没有实现 Iterable
接口?
Map
(特别是 HashMap
)并不实现 Iterator
,因为不清楚应该迭代什么。有三种选择:Map并没有实现此方法,但是你可以使用keySet()
、values()
或者entrySet()
来获取迭代器。由于它们本质上是集合(set),所以都实现了迭代器。请参见Map的Java文档这里。
哈希映射包含两个数据结构,键和值,每个数据结构都有一个迭代器。HashMap作为一个整体不是应该被迭代的数据结构。
不能直接迭代它。您需要一个一维结构来迭代。
hashMap.entrySet().iterator()
可以完成这项工作。
Map接口没有实现Collection接口,因为它不包含元素,而是包含键和对应值的条目。