日期:2014-05-20  浏览次数:20628 次

java Map相关
for (;;) {
            Entry<K,V> e = i.next();
            K key = e.getKey();
            V value = e.getValue();
            sb.append(key   == this ? "(this Map)" : key);
            sb.append('=');
            sb.append(value == this ? "(this Map)" : value);
            if (! i.hasNext())
                return sb.append('}').toString();
            sb.append(',').append(' ');
}


sb.append(value == this ? "(this Map)" : value); ------ value == this这是啥意思啊,看不懂!!
求教!

------解决方案--------------------
不是你这样看的,value == this ? "(this Map)" : value看全部的,这是一个三目运算
------解决方案--------------------
key   == this ? "(this Map)" : key搞懂这句话

首先判断 key == this 这个条件是否成立,如果成立的话,返回String : "(this Map)",否则返回 key.
这段话将返回一个String作为参数给sb.append
------解决方案--------------------
value == this不就是判断value和this的值是否相等么?相等就是true,不相等就是false
------解决方案--------------------
引用:
key   == this ? "(this Map)" : key搞懂这句话

首先判断 key == this 这个条件是否成立,如果成立的话,返回String : "(this Map)",否则返回 key.
这段话将返回一个String作为参数给sb.append
很详细了
------解决方案--------------------
三目运算,如果前面的表达式成立,执行?和:中间的,如果不成立就执行:之后的
------解决方案--------------------
如果你不知道this是什么,那么打印下或者debug下;或许我的回答多余了
------解决方案--------------------
引用
三目运算,如果前面的表达式成立,执行?和:中间的,如果不成立就执行:之后的

可以去看下书
------解决方案--------------------
楼主问的不是三目运算符,而是this指的是什么东西吧?
------解决方案--------------------
估计楼主是没看懂问号表达式 这个可以百度之.
------解决方案--------------------
this不就是当前类嘛