(o==null ? get(i)==null : o.equals(get(i)))
三木运算 表达式 ? 值1 :值2
意思就是如果表达式为true返回值1 否则返回值2 值1和值2必须是同一类型
你这就是如果o==null 那么返回get(i)==null否则返回o.equals(get(i))
后面两个都是布尔值所以是可以的。。
你可以boolean b = (o==null ? get(i)==null : o.equals(get(i)));
这是三目运算,如果o==null成立的话,则运行get(i)=null。不成立的话则运行o.equals(get(i)) !!!!!
条件判断,成立则运行冒号前的话,不成立则运行后面的。
o==null 是否成立 成立则 执行get(i)==null (返回的是布尔值 TRUE or false) o==null 不成立 则执行 o.equals(get(i) (返回的也是布尔值)
?: 是一个三目运算符
上面的等于
if(o==null){
return get(i)==null//返回get(i)==null的值
}else{
return o.equals(get(i))//返回o.equals(get(i))
}
问号表达式
,(o==null ? get(i)==null : o.equals(get(i)))
如果 o==null 直立(真),则取:前面的、否则取:后边的