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