学 Java 有必要看数据结构的书吗?如果是,那么哪本书比较好?

自己已经学过数据结构与算法了,但是感觉学校的课本讲得太少,而且不全面,并且老师也是一带而过,但是在后面自学的过程中越来越觉得数据结构与算法越来越重要,因为我是从 C -> c++ -> java 这样入门的,当我学到Java的时候前面C和C++的语法除了一些基本的语法以外都很模糊了,但是数据结构的思想基本没怎么改变,而且对我后面学习java起到了很大的帮助,提升了我学习java的速度,因而觉得数据结构与算法真的很重要,然后想自己去买本好书来自学,但又不知道买java的还是C/C++的,当看了这位大神的回答之后就有了答案,还是买c/c++的吧,因为搞编程都是从顶层一步一步往底层做的,越到底层水平越高,当然工资也越高啦,对数据结构的依赖就越大,但是java的数据结构都给你封装好了,对于我来说,还是希望往底层做。不过我认为不是偏向技术(产品运营或者搞UI的)的同学的话可以选择java 的数据结构与算法。

接下来看看大神的解答吧。

——————————————————————————————————————————————————————————————————————————————-

作者:涛吴

链接:https://www.zhihu.com/question/20012022/answer/13688683

来源:知乎

著作权归作者所有,转载请联系作者获得授权。

如果说 Java 是自动档轿车,C 就是手动档吉普。数据结构呢?是变速箱的工作原理。你完全可以不知道变速箱怎样工作,就把自动档的车子从 A 开到 B,而且未必就比懂得的人慢。写程序这件事,和开车一样,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,也不能造车。如果你对这两件事都不感兴趣也就罢了,数据结构懂得用就好。但若你此生在编程领域还有点更高的追求,数据结构是绕不开的课题。

Java 替你做了太多事情,那么多动不动还支持范型的容器类,加上垃圾收集,会让你觉得编程很容易。但你有没有想过,那些容器类是怎么来的,以及它存在的意义是什么?最粗浅的,比如 ArrayList 这个类,你想过它的存在是多么大的福利吗——一个可以随机访问、自动增加容量的数组,这种东西 C 是没有的,要自己实现。但是,具体怎么实现呢?如果你对这种问题感兴趣,那数据结构是一定要看的。甚至,面向对象编程范式本身,就是个数据结构问题:怎么才能把数据和操作数据的方法封装到一起,来造出 class / prototype 这种东西?

此外,很重要的一点是,数据结构也是通向各种实用算法的基石,所以学习数据结构都是提升内力的事情。

书我推荐《Data Structures and Algorithms in Java》,如果你只会 Java,目前也只对 Java 感兴趣的话。

    原文作者:Leonidas_Li
    原文地址: https://blog.csdn.net/Leonidas_Li/article/details/53056591
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞