繁体   English   中英

在Java TreeMap上我应该在清除之前检查大小吗?

[英]On a java TreeMap should i check size before clearing?

我以为我可以打电话给清楚,而不是

if (tmap.size() > 0) {
    tmap.clear();
}

或者更有效率?

你将TreeMap.clear()获得任何东西,因为TreeMap.clear()在开销方面没有任何意义:

public void clear() {
    modCount++;
    size = 0;
    root = null;
}

因此,只需使用tmap.clear();即可使代码简单易读tmap.clear();

编写JDK集合类以尽可能地进行优化。
所以你通常不需要担心基本的优化,因为这些都必须完成。
例如,查看HashMap.clear()逻辑, clear()操作需要更多开销:清除表(存储桶)。
因此,在执行以下操作之前,会检查地图的大小:

public void clear() {
    Node<K,V>[] tab;
    modCount++;
    if ((tab = table) != null && size > 0) {
        size = 0;
        for (int i = 0; i < tab.length; ++i)
            tab[i] = null;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM