浏览 1077 次
锁定老帖子 主题:JDK里面这样子写代码是否有深意啊?
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-08
Iterator<Entry<K,V>> i = entrySet().iterator(); if (key==null) { while (i.hasNext()) { Entry<K,V> e = i.next(); if (e.getKey()==null) return e.getValue(); } } else { while (i.hasNext()) { Entry<K,V> e = i.next(); if (key.equals(e.getKey())) return e.getValue(); } } return null; } 今天无意中在查看java.util.AbstractMap<K,V>这个类时看到上面这段代码,我的问题就是为什么不把key==null的判断写到while循环里面写成: public V get(Object key) { Iterator<Entry<K,V>> i = entrySet().iterator(); while (i.hasNext()) { Entry<K,V> e = i.next(); if (key==null) { if (e.getKey()==null) return e.getValue(); } else{ if (key.equals(e.getKey())) return e.getValue(); } } return null; } 或者写成: public V get(Object key) { Iterator<Entry<K,V>> i = entrySet().iterator(); while (i.hasNext()) { Entry<K,V> e = i.next(); if (e.getKey()==key || key.equals(e.getKey())) return e.getValue(); } return null; } 我一向比较崇拜JDK的代码,难道他们这样子写有什么深意,比如效率考虑??? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |