首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么HashMap的key允许空值,而HashTable却不允许

    因此key为null时,hash算法返回值为0,不会调用key的hashcode方法。...HashTable从源码分析: 上面可以看出当HashTable存入的value为null时,抛出NullPointerException异常。...如果value不为null,而key为空,在执行到int  hash = key.hashCode()时同样会抛出NullPointerException异常 2.从设计师角度分析 HashTable是...HashMap是之后的版本引进的类,它的接口Map表达的意义更为广泛,也许HashMap的设计者认为null作为key和value是有实际意义的,所以才允许为null....当然实际项目中,真的是有value为null的情况的。key为null的情况比较少见,但不代表没有。HashMap允许null为key和value应当是类的设计者思考让这个类更有用的设计吧

    2.5K21

    使用“空”对象替代引用是否为空判断

    这些函数中会出现很多是否为空的判断,严重影响代码的美观程度、可读性,甚至还增加了出BUG的几率。...但是一些年纪较大的语言, 比如说Java,只能通过一些代码编写技巧来尽量弱化空引用带来的问题。「使用Null对象代替是否为空判断」是一种流行的解决此问题的技巧。...其实两个方法的if条件都没有被满足,然而它们一个返回长度为0的空字符串,一个返回null, 空字符串虽然没有实际意义,但却并非是空引用, 因此在其上执行操作不会抛出空引用异常,代码也是相对安全的。...Site 类的GetCustomer方法内部进行了_customer 成员是否为空的判断,这其实就是把原来在外面的空引用判断提取到了类的内部,把逻辑给封装了起来。...然而,引入这个机制还需要跟代码的实际情况结合,假如某个对象为空的情况只出现有限的几次,那引入这种机制显得有些杀鸡用牛刀的味道了,使用是否为空判断反而更加轻松;当某个对象是否为空的判断频繁的出现在代码之中

    10.1K80

    如何判断环境变量为空

    -z 很容易理解,在 Shell 脚本里就是表示后面这个变量是否为空,也做 zero 的意思。那后面的 +x 呢?...2 Example 以下例子是先定义了 VARIABLE 变量为空,然后判断为空的时候输出需要设置环境变量,不为空则打印变量值。 VARIABLE= if !...运行后发现,结果有点诡异,明明变量是空的,为什么会报告说变量定义了呢? ➜ /tmp cat x.sh VARIABLE= if !...我大概解释一下,${VARIABLE+x} 这种称为 parameter expansion,这个变量的含义是,如果 VARIABLE 是 unset 或者空的,则会用 x 来替换这个值,最后再用刚刚的例子测试一下.../x.sh x was defined 可以看到VARIABLE为空值null,所以会用x来替换${VARIABLE的值,也就是说此时${VARIABLE}=x,所以最终会输出x的值。

    2.2K20
    领券