keySet和entrySet在Map元素数较少时(小于10000)在查询速度上的区别不大,它们对于程序性能的影响可以忽略不计。但在元素较多时(大于100000)时entrySet的速度要明显快于keySet,尤其是TreeMap更明显。
这是因为keySet迭代后只能通过next方法返回key值,再取得key所对应的value时,此时还要访问Map的这个方法,这时,又多遍历了一次Map集合 ,也可以说是并发访问
而entrySet()方法迭代后,其next方法返回一个Entry对象的一个实例,其中包含key和value.
数据并发量不大的系统上entrySet()的优势并不明显.
|