前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java漫谈12

Java漫谈12

作者头像
用户1335799
发布2018-03-12 10:59:57
7980
发布2018-03-12 10:59:57
举报

上周聊完了Java中的String这种类型,这周我想聊聊Java中的集装箱——集合。当然,这篇也是Java基础漫谈系列的最后一篇文章。不过可能你会说不对啊,Java的基础还有流,java与数据库的交互,这些难道都不谈么。因为我的知识不够了,hold不住那两块的内容,因此,对我来说,最重要的事就是“补货”,货齐了,到时候,咱们再聊。

我刚开始学集合的时候其实是被忽悠着接受集合这个概念的,过程大概是这样的。Java基础课上,老师只是简单地提了一下集合这个概念,然后用基本的数据类型做的案例演示。还记得基本数据类型么,就是之前提到的Java中的八大金刚。而这些功能数组也能做,所以当时我就糊涂了,明明有数组了,为什么还要弄个集合。这种感觉就像是明明能把书拿在手里带到教室,为什么非得将书先放到书包里,然后再把书包带到教室呢。

这是为什么?

老师直接让我把集合相象成一个可变的数组。在Java中数组初始化的时候是需要指定长度的,这里所说的初始化,就是新建的意思。在以后的使用中,如果存储的数据变多了,对不起,你不能增加数组的长度,只能重新定义一个新的长度的数组,然后将原先数组的数据加进去,最后将多出来的数据加进去。不过在此后的很长一段时间里,我对集合的理解还真的就是一个可变的数组。

直到后来。

看了马士兵和毕向东的视频,才大概建立起来对集合的理解。尤其是对集合体系的理解。这些资料网上比较详细的一堆一堆的,今天咱么不聊这个。有兴趣的话,也可以去网上搜“java 集合体系”,在文末的清单中我列出了自己对它的简单理解。

这次我想聊聊今天回看这个过程的感受。概括起来说就是抓一小点,先用起来,产生联系,不断扩展。一开始的时候,只是将集合作为需要用到可变长度数组的一个替代方案,那个时候只是会用它的最最基本的特性。就是因为这一个原因,所以才没有忘记它。后来在不断的使用中发现它的新的特性,比如map的key-value特性可以实现快速查询的问题。刚开始的时候也只是知道有map这个名词,后来由于项目,或者bug的驱动去网上查map的使用,才逐渐掌握了map的最最基础的用法——创建,存值,取值。而这个时候也不要强求自己对map的了解能循着这条线深下去,这不现实,因为整体的集合框架的体系没有建成,这条线挖得越深,难度也就越大,随之带来的恐惧和消极情绪就会越多。

而这个时候不是立马去系统得学习框架的知识,而是先想方设法地把这个Bug先给解决掉。这是因为系统地学一般比较耗时间,时间上不允许,二来,在解决这个bug之后,这时候对集合的理解已经有一些了,这样再去系统的学,就会有个基础。

接下来就是系统地学,这里既可以选择看视频,也可以选择看书。可以不求甚解,但要较之前认知上有拓宽,比如能理解几个新词,对其中的某些新概念能用现实中的例子做对比。

通过系统地学习,一般的开发都能hold住。对于那些迷茫的概念,也大概知道是从属于哪个核心概念之下,这样去网上搜就可以了。而且搜索到的文章中提到的那些基础的概念和知识此时也不会是一脸蒙圈的感觉。但有可能是似懂非懂的感觉。这个时候如果有耐心的话,就可以一边看一边再弄懂一下这些概念,最后的时候,最后当理解了之前一开始提到的那个迷茫的概念的时候,对这个概念的理解就扩展了。

这个是我总结的在Java实战中把一个概念从入门到熟练运用的一个过程,希望能对你有帮助。

清 单

使用集合的三柄剑:

第一柄:天剑 List,元素可重复,存取有序,但查询速度慢。

第二柄:地剑 Set,元素不可重复,存取无序,谜一样的查询速度。

第三柄:人剑 Map,一种key-value形式,查询速度快。

剑鞘:Collections,针对集合的工具类,提供一些列静态方法,实现对集合的搜索,排序,合并等功能。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 怀英的自我修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档