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

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

卡卷网11个月前 (01-12)每日看点181

因为某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

分享给朋友:

相关文章

怎么用游戏搬砖挣钱呢?

怎么用游戏搬砖挣钱呢?

今天,我把我多年操作的经验分享出来,以供各位老板们学习借鉴,胆小的老板就离开吧,心里承受能力太弱了,会刷新你的认知的。有些新人在计算收益的时候,会以机器数来计算,其实是有误区的,比如,一台机器一个月搞400元,平均每天搞13元钱,搞上100...

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

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

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

网易云音乐里有哪些打动你的评论?

1.“如果我被强奸了,有人说我会失去贞操。”“我怎么失去贞操了呢?” “我的贞操不在我的阴道里。”“失去贞操的是强奸犯,而不是被强奸的人。”2.但要记得那年海边的烟火,我们不拘一格 ,嘲笑过生活。………网易云热评《这样就很好》3.“ 我们在...

用wordpress做这个网站的话,需要用到哪些插件?

一个完整成型的B2C电商独立站,如果用wordpress+woocommerce搭建,最终会用上20来个插件,而且是在经过慎重筛选,剔除不必要的插件的情况下,别问我为什么。wordpress建站,插件安装多了,速度会变慢,这是常识,但需要在...

为什么神经网络可以解偏微分方程,是什么原理?

为什么神经网络可以解偏微分方程,是什么原理?

题主一直比较关心神经网络在其他科学领域的应用,比如数学、物理学还有生物学,比如AlphaFold。本次带来的这篇文章傅里叶神经网络算子解偏微分方程就是一个很有意思的方向,其实我自己去年在给美国一个客户做兼职预测数字货币期权价格的时候就用到过...

在 Kubernetes 中,Service 的实现原理是什么,它是如何实现服务发现的?

行,问的这个问题挺有意思,Kubernetes 里 Service 是怎么实现的,服务发现是怎么回事,咱就直说了。这事儿看起来挺玄乎,但掰开揉碎了讲,也就那么回事。你得把这事儿想得简单点,别一上来就被啥术语吓住了——其实全是些搬砖的套路。咱...

发表评论

访客

看不清,换一张

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