Java笔记 · · By/蜜汁炒酸奶

Java漫谈-Long判等

Long判等源码

    public boolean equals(Object obj) {
        if (obj instanceof Long) {
            return value == ((Long)obj).longValue();
        }
        return false;
    }
可见Long类型的判等本身就是对值的判等,故不需要对Long做手动拆箱(即b.longValue())操作:
Long a = 1L;
Long b = 3L;
a.equals(b); //这样既可
a.equals(b.longValue()); //无需这样

list.contains(o)源码

此处以ArrayList的contains为例,可见当为Long时,该方法调用是equals作对比,而equals已自动拆箱,故无需再手动拆箱。
 public boolean contains(Object o) {
    return indexOf(o) >= 0;
 }

public int indexOf(Object o) {
    if (o == null) {
        for (int i = 0; i < size; i++)
            if (elementData[i]==null)
                return i;
    } else {
        for (int i = 0; i < size; i++)
            if (o.equals(elementData[i]))
                return i;
    }
    return -1;
}

评论已关闭

example
C
蜜汁炒酸奶

当前处于试运行期间,可能存在不稳定情况,敬请见谅。

欢迎点击此处反馈访问过程中出现的问题