有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java数据结构和实现,为什么我不应该只使用数据收集API呢?

在网上搜索了很长时间后,我一直没有找到合适的答案

我是最近的java学习者,每天我都会遇到令人兴奋的事情来学习。最近,我一直在学习数据结构,现在理解了大O理论。我确实理解了解数据结构及其实现的重要性,无论是LinkedList还是BST

在处理现实世界的Java项目时,编写数据结构类或使用SDK提供的Java数据结构API是一种常见做法吗

在IDE中,如果我实现Java的原生LinkedList,我可以访问它的所有原生方法,这使事情变得快速而简单

我相信在某些情况下,人们可能需要扩展这些类来适应某些任务


共 (3) 个答案

  1. # 1 楼答案

    通常,您可以编写自己的数据结构来对数据进行分组。你可以在你的类中使用java集合,你的类可能有java集合,但你通常不会编写自己的集合类

    例如

    // pseudo code only
    class Plane
    {
        ...
        private string id;
        private string type;
        private List<Passengers> passengers;
        ...
    }
    
    ...
    
    List<Plane> fleet = ...;
    
  2. # 2 楼答案

    I am currently using Eclipse and if I let say implement Java's native LinkedList, I can access all its native methods which makes things fast and easy.

    实际上,它通常只会让破解代码变得“快速而容易”。一般来说,几乎可以肯定的是,您应该只使用内置的Java集合类型,因为

    • 长期以来,许多非常聪明的人一直在优化它们
    • 它们比你能写的任何东西都要经过更好的测试
    • 它们旨在防止您意外破坏其任何内部实现
    • 它们允许您与使用集合的其他Java库保持兼容性

    编写自己的低级数据结构几乎从来都不是一个好主意

  3. # 3 楼答案

    链表是一种无聊的数据结构。你能做的事情很少能真正以任何有意义的方式改进或扩展你的能力。一旦你开始研究更有趣的数据结构,比如缓存不经意的搜索树、可融合堆、可分类的deques或2-3手指树,如果你非常仔细地研究它们,自己实现它们(或其中的一部分),并熟悉它们的结构,你可能会发现做有趣事情的潜力更大。直接实现事物而不是仅仅为了实现而使用公共API不太可能实现任何事情,但是如果你能找到一种方法来做得更好,那就另当别论了