对于 Java 基础学习者,“目前”集合学习过程中有必要清楚理解底层原理吗

2022-02-08 11:44:31 +08:00
 Poluk

我是一个 java 初学者,目前学到了 java 集合类,这个老师对基础学习的学习非常友好,而且学到集合开始,很多知识点的讲解都是先讲基础用法,然后再简单分析底层源码,但是我快把整个集合类的基础听完了,我发现之前讲过的底层源码,并不是很清晰的理解,就是想问一下现在初学过程中,需不需要把比如 ArrayList ,LinkedList 这些底层理解清楚?

2646 次点击
所在节点    Java
10 条回复
28Sv0ngQfIE7Yloe
2022-02-08 11:50:55 +08:00
需要
1.面试会问
2.工作中也需要选择合适的数据结构完成需求(不过 LinkedList 的作者自己平常都不用 LinkedList (笑))
echo1937
2022-02-08 11:52:22 +08:00
能听懂多少算多少,以后慢慢会加深理解的。
就像你现在日常生活也用不到四则混合运算以外的大部分数学知识,但是你觉得它没用 /不用学习吗。
thetbw
2022-02-08 11:52:34 +08:00
推荐一个本书《漫画算法》,还蛮有意思的。刚开始不了解也没事吧,你只要大概知道什么场景用什么存数据好点就行
xuanbg
2022-02-08 11:53:11 +08:00
ArrayList 是基于数组的一个集合的实现,LinkedList 则是基于链表的一个集合的实现。与其关注如何实现,还不如理解数组和链表这两个数据结构的特点和应用场景。
我的建议还是从了解数据结构和算法开始,上层建筑还是要有稳固的基础去支撑的。
MakHoCheung
2022-02-08 12:13:28 +08:00
需要。比如不了解 HashMap 或者 HashSet 的 Hash 原理就不知道 Object#hash 的重要性,写代码就很容易出问题。当然也可以出问题了再去了解😂
Chase2E
2022-02-08 13:14:01 +08:00
初学者一定要安排时间学习数据结构,可以先学会 Java 的基础用法,然后用 Java 去按照课本挨个实现不同的数据结构
学完之后基本上大多数代码上的问题都会想清楚
ikas
2022-02-08 13:40:24 +08:00
既然是初学者.就算你花大量时间研究这些源码,也是一知半解

等你学的多了,做的多了,然后在潜心研究下

前期的时间,多学基础,多写代码
sagaxu
2022-02-08 13:42:53 +08:00
面试要问,有些还会问这些容器在不同版本 JDK 中的实现细节差异
huntagain2008
2022-02-08 14:09:10 +08:00
我是小白,以前是靠记忆写过 LinkedList,笔试题有要你实现链表的题目。
goalidea
2022-02-08 14:28:07 +08:00
八股文必须要背的,不然你连面试都过不了,何来工作这一说

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/832399

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX