`
bmqnc
  • 浏览: 127503 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对LinkedList源代码中entry函数的一点启示

    博客分类:
  • java
阅读更多
看下entry的代码:
 /**
     * Returns the indexed entry.
     */
    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;
    }


这里有个技巧非常用得非常的好,就是取数据的时候会判断当前的索引是在链表的前半部分还是后半部分,根据不同的位置来做遍历(前半部分的话从header往索引高的元素遍历,在后半部分从索引往下降得部分遍历)。太强悍了,如果自己当时去写这个算法的话估计还是用那种暴力遍历的方式。。。。
分享到:
评论

相关推荐

    Java 中Linkedlist类的源代码

    LinkedList的源代码包含了许多重要的方法和内部类。首先,我们来看它的主要属性: 1. **header**: 这是一个内部静态节点类Node的实例,作为链表的头节点。即使链表为空,header也会存在。 2. **size**: 用于记录...

    164个完整的Java程序源代码

    4. **集合框架**:Java集合框架包括ArrayList、LinkedList、HashSet、HashMap等,它们在源代码中会被广泛应用,用于数据的存储和操作。 5. **输入/输出流**:Java的I/O流系统广泛用于文件读写、网络通信等场景,源...

    Java聊天室程序,源代码,AIP函数

    Java聊天室程序是一种基于Java语言实现的实时通讯...通过研究这个Java聊天室程序的源代码,你可以学习到如何使用上述知识点,并将它们应用到自己的项目中。同时,这也是提升Java编程技能和深入理解网络编程的好机会。

    Java程序设计实用教程源代码

    源代码中会有各种各样的函数和方法,展示如何定义、调用和传递参数。此外,可能会涉及静态和非静态方法,以及构造函数的使用。 异常处理是Java中一个重要的错误处理机制。源代码中可能会有try-catch-finally结构的...

    java源代码,java源代码

    在Java编程中,源代码通常以`.java`为扩展名,经过Java编译器的处理,会被转化为字节码(`.class`文件),然后由Java虚拟机执行。 Java源代码的知识点涵盖了多个方面: 1. **基本语法**:Java源代码遵循特定的语法...

    JavaSE_01 源代码

    5. **函数和方法**:Java中的函数或方法是代码组织的基本单元。源代码会包含各种功能的方法,如计算、数据处理、输入输出等,通过它们可以学习如何编写和调用方法。 6. **异常处理**:Java的异常处理机制使得程序...

    java核心技术源代码

    压缩包中的源代码是对书中理论知识的实践展示,帮助读者更好地理解和应用所学知识。 1. **基础篇** - 类与对象:Java是一种面向对象的语言,类是对象的蓝图。源代码中会包含如何定义类、构造函数、属性和方法的...

    java编程思想第四版源代码.7z

    1. **基础语法**:源代码中包含了Java的基础语法元素,如变量声明、数据类型、运算符、流程控制(条件语句、循环)、函数定义和调用等。这是所有Java程序员必须掌握的基础知识。 2. **面向对象编程**:Java是面向...

    C#源代码大全(基于C#程序设计的源程序)

    在提供的压缩包中,"源代码1"可能是一个或多个C#项目的初始部分,包含了类、函数、控制流、数据类型、面向对象特性等关键元素的实例。以下是一些可能涵盖的知识点: 1. **基本语法**:C#的基本结构,包括变量声明、...

    《Java项目开发实训教程》源代码(每章的案例源代码)详细版

    2. **集合框架**:Java集合框架是编程中必不可少的部分,源代码可能展示了ArrayList、LinkedList、HashMap、HashSet等容器的使用,以及泛型、迭代器和流API的实践。 3. **异常处理**:源代码中可能涉及到try-catch-...

    LinkedList实践代码

    在实践中,我们可以编写代码来演示如何使用LinkedList实现二叉树的构建和遍历。例如,创建一个BinaryTreeNode类,然后用LinkedList来存储节点,通过调整节点的引用关系来构建二叉树,并实现遍历方法。这样的练习有助...

    java程序设计实用教程 源代码

    8. **多线程**:Java内置对多线程的支持,源代码会涵盖Thread类和Runnable接口的使用,以及同步和互斥的概念。 9. **网络编程**:Java的Socket编程允许创建客户端和服务器应用。源代码将演示如何建立连接,发送和...

    c# 程序源代码

    在C#编程语言中,源代码是程序员使用C#语法编写的应用程序文本,这些文本包含了计算机执行的指令。"c# 程序设计源代码 include all the code in the book"这一描述暗示我们这里可能有一个包含书中所有示例代码的...

    Java自学程序源代码

    4. **集合框架**:Java集合框架包括ArrayList, LinkedList, HashMap等,源代码可能会有对这些数据结构的使用示例,帮助理解它们的特性和应用场景。 5. **输入/输出流**:I/O流在Java中用于读写文件或网络通信,源...

    java大全书上源代码2

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、健壮性和安全性著称。...通过阅读和运行这些源代码,你可以加深对理论知识的理解,并将其应用于实际编程中,从而成为一名更出色的Java开发者。

    Java程序设计语言源代码

    Java程序设计语言源代码是学习和理解Java技术体系的重要途径,尤其对于开发者而言,阅读和分析源代码能够深化对语言特性的理解,提高编程技能。Java作为一种广泛使用的面向对象编程语言,其源代码包含了丰富的编程...

    Java面向对象程序设计课本例题源代码

    这份压缩包包含了书中各个章节的例题源代码,是学习和理解Java面向对象编程概念的宝贵资源。下面我们将详细探讨这些源代码所涵盖的知识点,并结合Java的核心特性进行解析。 1. **类与对象**:在Java中,一切皆为...

    C#版数据结构源代码

    源代码中会详细展示每种排序算法的步骤和C#实现。 9. **查找算法**:如二分查找、哈希查找等,这些算法提高了在有序或无序数据中查找特定元素的效率。 10. **哈希表**:哈希表(HashMap)是通过哈希函数将键映射到...

    java简单实例程序源代码

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、健壮性和安全性著称。这个"java简单实例程序源...在学习过程中,建议结合相关教材或在线教程,以加深对每个概念的理解,并尝试自己编写代码,以提升编程技能。

    《Java语言程序设计》源代码

    源代码中会涉及ArrayList、LinkedList、HashSet、HashMap等的使用,帮助理解它们的特性和应用场景。 7. **输入/输出流**:Java的I/O流系统用于处理数据的读写,包括文件操作、网络通信等。例如,FileInputStream和...

Global site tag (gtag.js) - Google Analytics