我有一张声明如下的地图 -
Map<Date, Long[]> myMap = new TreeMap<Date, Long[]>();
Run Code Online (Sandbox Code Playgroud)
我在该地图中放置了一些键值对,检查大小如下 -
myMap.size(); //returns 29
myMap.values().size(); //returns 31
Run Code Online (Sandbox Code Playgroud)
所有日期(键)都是不同的.
这两个人不应该返回相同的值吗?
Rya*_*art 12
鉴于TreeMap的values()方法返回的集合(至少在JDK 6中)具有如下大小:
public int size() {
return TreeMap.this.size();
}
Run Code Online (Sandbox Code Playgroud)
我说你在两次size()通话之间添加了新的条目.要明确,map.values().size()代表团map.size().因此,他们无法为具有相同内容的相同地图返回两个不同的值.