今天看了一下LinkedList的源代码, 它的实现是通过操作一个静态的内部类的对象来实现的
private static class Entry<E> {
E element;
Entry<E> next;
Entry<E> previous;
Entry(E element, Entry<E> next, Entry<E> previous) {
this.element = element;
this.next = next;
this.previous = previous;
}
}
静态的内部类,在内存中,是一个相对独立的存储单元
通过指针的方式,把内存中分散的对象,连接成一个有前后顺序的结构。
再通过外部的方法,对这个对象结构做操作,例如删除
private E remove(Entry<E> e) {
if (e == header)
throw new NoSuchElementException();
E result = e.element;
e.previous.next = e.next;
e.next.previous = e.previous;
e.next = e.previous = null;
e.element = null;
size--;
modCount++;
return result;
}
只是在查询某个元素的时候,是从header开始,逐次遍历的
private Entry<E> entry(int index) {
if (index < 0 || index >= size)
throw new IndexOutOfBoundsException("Index: "+index+
", Size: "+size);
Entry<E> e = header;
if (index < (size >> 1)) {
for (int i = 0; i <= index; i++)
e = e.next;
} else {
for (int i = size; i > index; i--)
e = e.previous;
}
return e;
}
这样性能相对较低
难怪Kent Beck提到LinkedList的增加和删除的性能要优于由对象数组实现的ArrayList。
分享到:
相关推荐
总之,学习Java必须读懂这两套源代码,这不仅是提升个人技术深度的必要步骤,也是成长为一名专业Java开发者的必经之路。在这个过程中,你会逐渐建立起对Java的深刻认识,提高问题解决能力,为未来的职业发展打下坚实...
10. **集合与数据结构**:C#提供了丰富的内置集合,如ArrayList、LinkedList、Dictionary等,源代码中会展示如何使用这些集合进行数据存储和操作。 通过分析和学习《Illustrated C# 2008源代码》中的示例,开发者...
在这个“Java程序练习附带源代码”的压缩包中,你将找到一系列用于学习和实践Java编程的小型示例项目。这些源代码是深入理解Java语言特性和编程技巧的宝贵资源。 首先,让我们探讨Java程序设计的基础。Java的核心...
源代码是程序的基础,它是由程序员编写的、人可读的文本,包含了程序的所有逻辑和指令。通过查看和分析源代码,学习者可以深入理解程序的工作原理,这对于提升编程技能和解决问题能力至关重要。"老毕java视频源代码...
首先,Java源代码是编程的核心,它是由程序员编写的、可读的文本文件,包含了计算机执行的指令。`.java`文件是源代码文件,通过Java编译器(javac)转换成字节码(`.class`文件),然后由Java虚拟机(JVM)解释执行...
在Java编程中,源代码是程序员用人类可读的语言编写的程序文本,通过编译器转换成计算机可执行的机器语言。第二章通常会涉及基础的面向对象编程概念,如类、对象、封装、继承和多态等。通过分析这些源代码,我们可以...
《C#从入门到精通源代码2》是一个学习C#编程语言的重要资源,它包含了多个逐步进阶的示例和项目,旨在帮助初学者和有经验的开发者深化对C#的理解。C#是一种多范式、面向对象的编程语言,由微软开发并广泛应用于...
Java程序设计是软件开发中的基础课程,而"Java程序设计使用教程第四版源代码"则为学习者提供了实践和理解编程概念的宝贵资源。这个压缩包包含了一系列与Java编程相关的练习和示例代码,涵盖了从基本语法到高级特性的...
首先,源代码是程序的原始形式,它由人类可读的编程语句组成。在Java中,源代码文件通常以`.java`为扩展名。通过阅读这些源代码,我们可以了解不同类型的程序结构,例如类(class)、方法(method)、变量(variable...
【毕向东Java基础源代码】是一份非常珍贵的学习资源,由知名的IT教育机构黑马程序员的资深讲师毕向东老师提供。这个资源主要包含了他在教授Java基础知识时所使用的示例代码,对于初学者来说,是一个深入理解Java语言...
源代码是程序设计中的重要组成部分,它是由程序员编写的、人类可读的文本形式,用于指示计算机执行特定任务。 在学习JavaSE时,源代码的作用不言而喻。它可以让你看到每一行代码是如何实现功能的,从而加深对编程...
"源代码"标签强调了这些是可读的、未编译的程序文本,可以直接在Java集成开发环境(IDE)如Eclipse、IntelliJ IDEA或NetBeans中打开、编辑和运行。通过查看源代码,学习者可以直接看到程序的逻辑结构,理解每一行...
源代码是程序设计者用人类可读的语言编写的文本,它包含了程序的所有逻辑和指令。Java源代码通常以`.java`为扩展名,经过编译器转化为字节码(`.class`文件)后,由Java虚拟机执行。因此,精通Java源代码意味着能够...
源代码通常指的是程序员用人类可读的语言编写的程序,而这里的".class"文件则是Java编译器将源代码编译后的结果,用于Java虚拟机(JVM)执行。 1. **类和对象**:在Java中,一切皆为对象。如"Rectangle.class"可能...
这个压缩包文件的标题——"绝对经典的JAVA源代码",暗示了其中包含了一些具有代表性和学习价值的Java代码示例。这些源代码可能是由经验丰富的开发者编写的,旨在帮助初学者或有经验的程序员深入理解Java语言的核心...
源代码是程序员用人类可读的语言编写的程序,它遵循Java语法,包括类定义、方法声明、变量声明等。 - 类(Class)是Java程序的基本构造块,每个.java文件可以包含一个或多个类。在这里,"Ellsworth"可能是一个类的...
Java源代码是编程领域的核心元素,它是由程序员编写的、以人类可读的形式表示的程序。在Java中,源代码通常以`.java`文件扩展名保存。这些文件包含了按照Java语法编写的一系列类、方法和变量定义,它们是程序运行的...
《C# 4.0权威指南》是一本深入解析C#编程语言的重量级书籍,其源代码提供了丰富的实例和示例,旨在帮助读者更好地理解和掌握C# 4.0的关键特性和用法。这份资源包含了五个部分的源码,分别在五个不同的RAR文件中,...
Java源代码文件通常以`.java`为扩展名,它们是人类可读的文本文件,包含了类、方法和其他编程元素的定义。在编译过程中,Java编译器将这些源代码转换为`.class`字节码文件,这是Java虚拟机(JVM)能够理解和执行的...
【标题】"VISUALC#.net教程和源代码"涵盖了C#编程语言在.NET框架下的基础知识与实践应用,尤其强调了Visual Studio IDE的使用。这个教程可能是为了帮助初学者和有经验的开发者深入理解C#语言特性以及如何利用它来...