首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据结构和实现,为什么我不应该仅仅使用数据收集API?

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

Stack Overflow用户
提问于 2015-03-19 02:20:52
回答 3查看 162关注 0票数 0

在对这个主题进行了长时间的在线搜索之后,我一直未能找到一个合适的答案。

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

在实际的Java项目中,编写数据结构类或使用SDK提供的JAVA数据结构API是一种常见的做法吗?

在IDE中,如果我说实现了Java的本机LinkedList,我就可以访问它的所有本机方法,这使得事情变得快速和简单。

我确信,在某些情况下,可能需要扩展这些类以适应某些任务。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-19 05:48:46

链接列表是一种枯燥的数据结构。你能做的事情很少能真正地以任何有意义的方式改进或扩展。一旦你开始研究更有趣的数据结构,比如缓存--遗忘的搜索树,融化的堆,可折叠的标记,或者2-3根手指树,如果你仔细研究它们,自己实现它们(或它们的一部分),并对它们的结构非常熟悉,你可能会发现更多的潜力去做有趣的事情。直接实现事物而不是仅仅为了实现它而使用公共API是不可能完成任何事情的,但是如果您能够找到一种更好地这样做的方法,那就另当别论了。

票数 1
EN

Stack Overflow用户

发布于 2015-03-19 02:26:46

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

例如:

代码语言:javascript
复制
// pseudo code only
class Plane
{
    ...
    private string id;
    private string type;
    private List<Passengers> passengers;
    ...
}

...

List<Plane> fleet = ...;
票数 0
EN

Stack Overflow用户

发布于 2015-03-19 02:36:45

我目前正在使用Eclipse,如果我说实现了LinkedList的本机LinkedList,我可以访问它的所有本机方法,这使得事情变得更快、更容易。

在实践中,它通常只是“快速和容易”地破坏您的代码。一般来说,您几乎应该只使用内置的Java集合类型,因为

  • 很长一段时间以来,很多非常聪明的人对它们进行了优化
  • 它们比你能写的任何东西都要好得多
  • 它们的目的是防止意外破坏它们的内部实现。
  • 它们允许您维护与使用集合的其他Java库的兼容性。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29136133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档