对于java,我并不认为数据结构很重要!

上海浪子 2009-08-05 08:51:12
在我身边的玩过几年Java的编程水平不错的朋友对于Java版的数据结构都不怎么熟悉,以前上大学老师总是说数据结构多么重要,本人三月份抽空把数据结构几个核心概念,几个重要算法系统的研究了一遍,发现数据结构其实也没多少东西,堆栈,线性表,还有那几个算法,什么希尔排序,快速排序等等,well,这些对于我们java开发真的起很大作用?我们为了用个hashmap就需要去研究一下哈希算法?研究它怎么散射的,经过几次散射?有这么必要么?学那么多排序算法有用么??比如new个数组,直接调用其sort()方法,就自动选择优秀的排序来实现我们的目的,java把数据结构封装的这么好,我们有必要再去深入研究数据结构么?当然研究是没有坏处的,我认为没必要看的那么重要,研究它就好比去研究java的源代码,不要刻意去研究!java已经封装的很好了,我们不是比技术的,不是比算法的,不是比面子的,我们要的只有一个:实用!
...全文
6229 26 打赏 收藏 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
pywepe 2011-08-31
  • 打赏
  • 举报
回复

写过蜘蛛吗?
复杂的报表,树形

就不会这样认为了

掌握了会把自己的编程有很大的指导作用,写出更高效,高质的代码
  • 打赏
  • 举报
回复
看过 Robert Sedgewick 的《Java 算法》,这种的效果不愧是老外写的,只要看看其中的例子就能让
人学到东西。

比如在讲到栈的时候,举了 PostScript 语言的例子(据作者称是算法教材中首次采用 PostScript 语
言进行举例),讲描述了 PostScript 一些基本的语法规范,最后在练习中给出一小段 PostScript 代
码段,让大家在 Java 面板中将这个 PostScript 代码段所描述的图形画出来。

如果我们的教材都有这些生动的示例,有这些看得见的东西,我想我们学习数据结构和算法的效果和效
率会提高很多很多。
sunnyfun888 2009-08-05
  • 打赏
  • 举报
回复
一些基础的东西还是需要的,否则可能连个树状菜单都做不出。
  • 打赏
  • 举报
回复
主要现在学校中学的数据结构和算法都是些几十年前的研究成果,这些数据结构和算法老早就被
一些高级语言做成通用的组件封装起来了。

可能有人会要说,我们学数据结构和算法是学习其中的思想。实际上我认为这也是学习的理由之一,
但是中国的学校有个特点——应试教育,除了书上讲到的之外其他的几乎不会去考,更不可能在考
试时让大家去设计一个数据结构或者算法。

虽然说《数据结构》和《算法》这些课程是计算机专业的必修专业课,在国内开课也有几十年了,
虽然说国际 XX 计算机程序设计大赛中国学生包揽了前 X 名,但是能以中国人名字命名的,让全
世界学生学习的东西根本就不存在!

总结一下就是我们不会学以致用,不会举一反三。
feiyc101 2009-08-05
  • 打赏
  • 举报
回复
IT民工,我还不是呢?
  • 打赏
  • 举报
回复
现在来说真的是没多大用处(不是说一点用都没),很多人说为了以后的发展,那有多少人以后会去搞科研一样的搞JAVA?我们做JAVA,就只是为了赚钱,而不是为了开发个操作系统什么的。那些自以为数据结构很精通的人,一个月能赚几个钱?
shushiyang1990 2009-08-05
  • 打赏
  • 举报
回复
学东西还是要学的深入点好,不错,在java中有许多数据结构可能是封装了的,但作为一个程序员不可能将来只是学这一种语言,毕竟这只是一种工具.学语言难的不是它的语法,语法和用法相对其他方面算简单的了,关键是要了解一些具体的算法,这才是难点.
如果lz真正想要学好,数据结构是相当重要的!
冰思雨 2009-08-05
  • 打赏
  • 举报
回复
我从事Java方面的工作,也有2~3年的时间了。
其间有好多情况,都需要自行设计数据结构来完成某个流程的处理。
比如说,一个C/S版的聊天程序。如果只是公共聊天室的功能,那几乎不用涉及什么数据结构的知识。
但,如果添加私聊功能和文件传输功能呢?
尤其是文件传输功能,肯定是要自行设计通信协议来完成文件传输滴。
因为,Java里面的File对象和Socket对象,并不可以序列化,所以,不能直接传输。
而通信协议的设计,必然要包含数据结构的相关内容。

J2EE方面的开发,之所以用到自行设计数据结构的情况比较少。
我理解,是因为,现有的框架是程序员都专注在业务逻辑的处理上面了。(这个是很好滴)
而,业务逻辑,则,多数情况是进行数据库的交互。
通过数据库的交互,可以省去很多自行设计数据结构的情况。

比如,统计当前网站的在线人数,我们可以将这个数值写到数据库的单行表里。
也可以写一个线程安全的数据结构来保存到内存当中,定时回写到数据库中。
小型项目,一般都直接写到数据库里完事,因为,网站的并发访问并不高。
ZangXT 2009-08-05
  • 打赏
  • 举报
回复
这个还是根据个人情况来了。
我有几个从事java方面工作的同学都后悔大学里数据结构学的不够扎实呢。
冰思雨 2009-08-05
  • 打赏
  • 举报
回复
额。。。。。
我觉得,应该是楼主没有真正遇到自己设计数据结构的情况。
还有一个原因,是因为Java比较开源,一些常用的数据结构都已经有源码了,所以,我们只拿来用就可以了。
但是,有些时候,了解数据结构,会对开发高效程序有帮助。
比如:有一个链表List<Date>,里面按时间早晚依次存放了四个时间对象,编写程序,
要求如果相邻两个时间对象其时差超过5小时,则以3个小时为时间间隔补全两者之间的空隙,
使得两者之间的所有相邻时间都不超过5小时。
在上述的条件下,如果我编程,就是用LinkedList<Date>来存放数据,因为,程序会频繁插入新数据。
另比如:C/S架构的游戏大厅程序,其服务端,
由于用户数量非常多(几十万以上),身份验证的响应时间过长(3秒以上)。
要求分离出1~2台服务器,专门做身份验证使用,由于访问数据库的响应时间也是瓶颈之一。
要求程序中在内存中直接使用缓存,缓存没有命中再去数据库中查询。
这时,如果你打算使用HashMap,那么,有几万容量的HashMap在创建对象的时候,就要考虑到散列算法了。
如果数据过于集中,将严重影响缓存效率。这种情况可以放弃使用TreeMap这种结构。
或者,需要程序设计人员,根据实际情况,设计一个高效的缓存。
feishare 2009-08-05
  • 打赏
  • 举报
回复
原来我也是这样认为的,不过我们不能只局限于IT民工!
superheizai 2009-08-05
  • 打赏
  • 举报
回复
对,只是你没用上,我现在希望把大学学过的一些课程再学一遍。。
APOLLO_TS 2009-08-05
  • 打赏
  • 举报
回复
数据结构都不会了!
jackson416 2009-08-05
  • 打赏
  • 举报
回复
不是没用...只是你没用上...
bigbug9002 2009-08-05
  • 打赏
  • 举报
回复
API不可能封装了所有的数据结构和算法
比如图和树中的好多实际问题的解决都要自己定义结构吧。
比如对一个巨大的文本文件中的数据进行排序的问题。
程序员猪佩琪 2009-08-05
  • 打赏
  • 举报
回复
如果想写代码写到死,那就不用去学了。但是叫你在几百万,几亿条数据中去查找去排序,还用java提供的方法吗?楼主可以试一试?
临碣 2009-08-05
  • 打赏
  • 举报
回复
那东西很重要,应该从另外一个角度看待数据结构的问题。
即便最简单的用处,做简单算法训练用,数据结构也很有用。

你那个sort的用法就有很多限制。大量数据你也要这么sort么?肯定不是吧。分组排序怎么办?放数据库里面group by么?

其实,在面向对象的语言中,讨论数据结构是不公平的。因为面向对象主要解决的是系统的结构问题,是让系统的结构接近人类认识的语言。而数据结构是上一个时代的核心,即面向过程的语言的核心——算法、数据。面向过程中,数据要保存在特定的数据结构中,通过算法完成功能。而面向对象讨论的最核心的价值是如何合理封装这些数据和算法。

了解数据结构,对选择程序结构,选择方案,提出解决方法都有很大帮助。如果仅仅是以写代码的角度看,有分析,有设计,一切都明确,数据结构确实没有意义。可是那些分析和设计怎么来的呢?是不是有更高的解决办法?

这东西,很有用,不是鸡肋,而是牛排:)
lycrsx 2009-08-05
  • 打赏
  • 举报
回复
学习了。。。。
偶也一直没搞清数据结构的用处,原来是自己一直没用到。。。。
学习学习。。
bigpretty 2009-08-05
  • 打赏
  • 举报
回复
呵呵,数据结构和业务逻辑,现在一般的系统是用不到,但是,如果做一些有核心竞争力的东西的时候,这些是不许要用到的.必须自己设计其数据结构,其算法!
老牛同学 2009-08-05
  • 打赏
  • 举报
回复
能更加深入的学习当然重要了,JAVA虽说封装好了,但不理解一下,只停留在上面用下,至于下面是怎么实现的不知道,感觉心里慌慌的。
加载更多回复(6)

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧