在对这个主题进行了长时间的在线搜索之后,我一直未能找到一个合适的答案。
我是最近的java学习者,每天我都会遇到令人兴奋的事情来学习。最近,我一直在学习数据结构,现在我了解了大O理论.我确实理解了解数据结构及其实现的重要性,无论它是LinkedList还是BST。
在实际的Java项目中,编写数据结构类或使用SDK提供的JAVA数据结构API是一种常见的做法吗?
在IDE中,如果我说实现了Java的本机LinkedList,我就可以访问它的所有本机方法,这使得事情变得快速和简单。
我确信,在某些情况下,可能需要扩展这些类以适应某些任务。
发布于 2015-03-19 05:48:46
链接列表是一种枯燥的数据结构。你能做的事情很少能真正地以任何有意义的方式改进或扩展。一旦你开始研究更有趣的数据结构,比如缓存--遗忘的搜索树,融化的堆,可折叠的标记,或者2-3根手指树,如果你仔细研究它们,自己实现它们(或它们的一部分),并对它们的结构非常熟悉,你可能会发现更多的潜力去做有趣的事情。直接实现事物而不是仅仅为了实现它而使用公共API是不可能完成任何事情的,但是如果您能够找到一种更好地这样做的方法,那就另当别论了。
发布于 2015-03-19 02:26:46
通常,您编写自己的数据结构来对数据进行分组。您可以在类中使用java集合,也可能拥有类的java集合,但通常不会编写自己的集合类。
例如:
// pseudo code only
class Plane
{
...
private string id;
private string type;
private List<Passengers> passengers;
...
}
...
List<Plane> fleet = ...;发布于 2015-03-19 02:36:45
我目前正在使用Eclipse,如果我说实现了LinkedList的本机LinkedList,我可以访问它的所有本机方法,这使得事情变得更快、更容易。
在实践中,它通常只是“快速和容易”地破坏您的代码。一般来说,您几乎应该只使用内置的Java集合类型,因为
编写自己的低级数据结构几乎不是一个好主意。
https://stackoverflow.com/questions/29136133
复制相似问题