当前位置:首页 > 每日看点 > 正文内容

java的arraylist,为什么要创建list,不直接用arraylist?

卡卷网7个月前 (01-12)每日看点121

因为某J字头语言的社区普遍喜欢通过脱裤子放屁的多余行为来表现自己的深谋远虑。

考虑到Java的List绝大部分时候只有两个实例,其中99%的场合你只会用到ArrayList,而几乎不会有使用LinkedList或者new一个匿名List的场合,这个问题的正确回答不是「创建List有什么理由」,而是,这个选择只是一个社区的惯性,它背后没有任何值得深挖或反思的哲学道理。

你爱用List<X>就用List<X>,你想用ArrayList<X> foo = new ArrayList<>也不应该有人拦你——如果你的团队里的组员对Java有稍微良好的理解而不是满足于人云亦云的话。

话说过来接口实现分离本来是个好文明,甚至有许多场合确实有把单一实现抽象出一个接口来方便解耦合以及合理组织代码的需要。比如说,我想实现一个简单的解释器,需要实现一个typing的模块,按理说我只需要一个实例,但是随着项目日渐复杂,抽离出接口,而其他模块只需要知道接口长啥样而不需要知道typing具体实现,也就成了一个很自然的演化了。但是在List<X> foo = new ArrayList<>这个场合下,除了脱裤子放屁,我想不到别的描述了。

再进一步说,我为什么要关心我的list到底是List还是ArrayList还是永远用不到的LinkedList或者new的匿名List?要不是Java里几乎没人用var,我巴不得直接写var list = new ArrayList<Integer>()。

本来不想回答的,不过这问题老是推我首页上,然后一看一水的复读设计模式和哲学的,有点ptsd了。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8908.html

分享给朋友:

相关文章

有了Istio,开发还需要微服务架构吗?

有了Istio,开发还需要微服务架构吗?

Istio 是一个开源的服务网格(Service Mesh),通过它可以实现对服务间通信的管理和监控。对于那些本身没有设计为具备安全功能的传统应用程序,Istio 可以提供一个“透明”的安全保护层,而不需要对应用本身进行任何代码修改。 I...

最让你震惊的网站有哪些?

压箱底的震惊来了,来波大的,一百个网站!这些都是我平时辛辛苦苦收集的,是真的牛逼,居然还有这种网站。1、实时地球网址:https://zoom.earth/实时图像每 10 分钟更新一次,提供风暴、天气预报、降水、火警等数据2、陕西博物馆...

到什么程度才叫精通 Linux?

我们医院有个大牛。有一次,我的Linux电脑下载了Microsoft office 365 不能运行。于是买了2.5升装康师傅冰红茶找到大牛,让他帮忙解决。大牛白了我一眼,让我把安装包发给他,只见他输入一个命令将安装包打开,整个屏幕都是数字...

计算机专业不干互联网不热爱技术,还能转行干什么?

转行的思路,无非也就是那几个。我们顺着每个思路,一路捋一遍,基本上,大致可行的方向,也就有了。一、跟对口职业和岗位业务链条相邻的职业和岗位计算机专业如果找到了对口的技术岗位,跟技术工作联系最紧密的岗位是什么?产品经理。当然,大多数产品经理也...

为什么有人觉得华为mate60只值2000?

为什么有人觉得华为mate60只值2000?

你以为买Mate60的人真的傻?真的那么爱国?国庆前,我家那傻子加价800多买了一台Mate60,当时还被我骂他是傻子。可是他说一回到公司就被老板同事朋友看到,拿去反复查看,都在惊叹他这么快就买到新机。跟亲戚朋友聚会,别人一看就知道他买的是...

是不是从Java培训班出来的人都被淘汰了?

真实个人经历。我就是从培训班出来的,但没有学完就跑出来了。当我明白什么人不管什么基础都能进培训班进行培训,学到什么程度都能保证他们包就业,我就知道不正常。我自己是大三下的时候去的,考研考到一半感觉无望,想抓紧时间学习技术,利用应届生身份准备...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。