Map的size()方法返回什么?

时间:2011-09-15 02:11:44

标签: java map size

我有一个声明如下的地图 -

Map<Date, Long[]> myMap = new TreeMap<Date, Long[]>();

我在该地图中放置了一些键值对,检查大小如下 -

myMap.size(); //returns 29

myMap.values().size(); //returns 31

所有日期(键)都不同。

这两个人不应该返回相同的值吗?

1 个答案:

答案 0 :(得分:12)

鉴于TreeMap的values()方法返回的集合(至少在JDK 6中)的大小如下:

public int size() {
    return TreeMap.this.size();
}

我说你在两个size()电话之间添加了新的条目。需要说明的是,map.values().size()代表map.size()。因此,他们无法为具有相同内容的相同地图返回两个不同的值。