public V get(Object key) {
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的代码,难道他们这样子写有什么深意,比如效率考虑???
分享到:
相关推荐
《深入解析JDK1.5.0_12源代码》 JDK1.5.0_12是Java Development Kit的一个重要版本,它引入了许多关键特性,对Java编程语言产生了深远的影响。在这个版本中,Java语言进行了重要的更新,包括泛型、枚举、自动装箱/...
JDK 1.8中最重要的更新之一就是引入了Lambda表达式,这是一种简洁的匿名函数表示方式,使得编写函数式编程风格的Java代码变得更加容易。Lambda表达式可以作为参数传递,也可以作为方法的返回值,极大地提高了代码的...
虽然在JDK8之后,部分sun包已被移除或重命名,但在JDK7中,这部分源代码仍然是理解Java底层运行机制的关键。 sunw 目录: 这个目录在较旧的Sun Microsystems JDK中常见,主要用于提供特定于Solaris操作系统的类。在...
Java开发是每一个程序员在职业生涯中必须要面对的重要环节,而深入理解JDK源代码更是提升编程技艺的关键步骤。JDK(Java Development Kit)是Java平台的标准版,包含了Java运行时环境、Java工具和Java基础类库。Java...
《深入解析JDK 1.6源代码》 在Java编程的世界里,理解JDK的源代码对于提升我们的编程技能和解决实际问题至关重要。本文将围绕JDK 1.6的源代码进行深入探讨,帮助开发者揭示其内部机制,增强对Java语言的理解。 ...
通过研究JDK 1.6的源代码,开发者可以深入理解Java语言的底层实现,学习如何优化代码性能,了解类库的设计模式和最佳实践,这对于提升编程技能和解决复杂问题非常有帮助。此外,对于面试和编写高性能、低消耗的应用...
这个压缩包提供了JDK12的源代码,对于开发者来说,这是一个宝贵的资源,可以深入理解Java的内部工作原理,提升编程技能,以及学习最新的开发实践。 1. **jdk.management**: 这个模块包含了Java管理扩展(JMX)的...
### jdk 生成接口客户端 Java代码详解 #### 概述 在进行Web服务客户端开发时,经常需要根据提供的WSDL(Web Services Description Language)文件来生成相应的Java客户端代码。这不仅可以提高开发效率,还能减少...
《深入解析JDK 1.6.0.15源代码》 在Java开发领域,理解JDK的源代码对于提升编程技能、优化代码以及排查问题具有重要意义。本资源是针对JDK 1.6.0.15版本的源代码,它包含了Java的核心组件,为开发者提供了一个宝贵...
《深入解析JDK1.4.2源代码》 JDK1.4.2是Java开发工具包的一个重要版本,它的源代码对于理解Java语言的底层实现和优化有着极高的价值。本文将从核心组件、类库结构以及关键功能等方面,深入剖析JDK1.4.2的源代码,...
通过深入学习JDK 7的源代码,开发者可以更好地理解Java语言的工作原理,提高编程技能,并对新旧版本之间的差异有更清晰的认识。 在JDK 7中,主要的新特性包括: 1. **多 catch 语句**:在异常处理方面,JDK 7允许...
这有助于我们了解如何使用这些工具进行开发和测试。 总的来说,JDK1.4的源代码是一份宝贵的教育资源,它揭示了Java语言的底层实现,帮助我们更好地理解类加载、内存管理、并发控制等核心概念。通过深入研究这些源...
《深入解析JDK8源代码:src.zip中的编程智慧》 在编程的世界里,Java Development Kit(JDK)是开发者的重要工具,它包含了Java运行环境和开发所需的各种库。JDK8作为Java的一个里程碑版本,引入了许多创新特性,如...
JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11...
**Java JDK 1.6.0 源代码解析** Java Development Kit (JDK) 是Java编程语言的核心组件,它包含编译器、运行时环境、调试工具和其他实用工具。JDK 1.6.0 版本是历史上的一个里程碑,它在Java的发展历程中占有重要的...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。JDK(Java Development Kit)是..."Example"这个文件可能包含了书中讲解这些特性的示例代码,通过实践这些代码,可以加深对JDK 6的理解。
JDK1.6源代码,这是第一部分,有兴趣的可以看一下
Java JDK完整源代码是开发者深入理解Java平台工作原理和实现机制的重要资源。它包含了Java开发工具集(Java Development Kit)的所有核心组件的源代码,帮助程序员在遇到问题时能够查看底层实现,提升学习和调试效率...
本资源包含的是OpenJDK 1.8u131版本的完整源码,包括了Java虚拟机(JVM)、类库以及C/C++编写的本地接口代码,这对于深入理解Java的工作原理、进行性能调优或者进行JDK的二次开发具有重要意义。 首先,JDK1.8的源码...
Java JDK宝典源代码是Java开发者的宝贵资源,它提供了Java开发工具包(JDK)的核心类库和实现的原始源代码。对于深入理解Java语言、API的工作原理以及进行问题排查,阅读源代码是非常有益的。这篇博文中,博主分享了...