gpt4 book ai didi

java - 为什么在 HashMap.java 中使用 1 << 4 而不是 16 作为常量 DEFAULT_INITIAL_CAPACITY?

转载 作者:行者123 更新时间:2023-11-30 08:06:42 25 4
gpt4 key购买 nike

public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
{
/**
* The default initial capacity - MUST be a power of two.
*/
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;//why not 16 here

谁能给出更好的解释?

最佳答案

很简单:左移 1 生成的常量,例如 1 << N 将始终是 2 的幂。

也可以写成其他方式,但这种方式更能 self 描述。我认为它完全等同,但它的编写方式清楚地表明了值是如何产生的以及它是如何计算的

就像在这种情况下 ( 1 << 4 ) 在这种情况下,它本来是 2^4,即 16。

关于java - 为什么在 HashMap.java 中使用 1 << 4 而不是 16 作为常量 DEFAULT_INITIAL_CAPACITY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34216685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com