ArrayList 的最后一个修饰符的容量为 10,添加第 11 个元素时究竟会发生什么?

小夏 科技 更新 2024-01-30

大家好,我是小米!最近,我在各种采访中发现,关于J**A,有一个问题引起了很多关注,那就是:被子final润饰arraylist,初始化容量设置为 10,当我们尝试添加第 11 个元素时究竟会发生什么?今天我们就一起揭开这个神秘的面试题吧!

在讨论这个问题之前,让我们先看一下 arraylist 和 final 关键字的基本概念。

arraylist:ArrayList 是 J**A 集合框架的成员,属于 List 接口的实现类之一。 它基于动态阵列实现,可根据需要自动扩展容量。 当我们添加一个元素时,如果当前容量不足,ArrayList 会自动扩展容量。

最终关键词:在 j**a 中,final 是一个关键字,用于表示一旦赋值就无法修改的不可变属性。 当 final 修改一个类时,意味着该类无法继承;当一个方法被修改时,这意味着该方法不能被子类覆盖;当一个变量被修改时,这意味着该变量是一个常量。

首先,让我们创建一个最终修改的数组列表,并将初始化容量设置为 10:

此处使用 ArrayList 构造函数,指定初始容量为 10。 由于final修图,我们不能再了mylist指向其他对象,但这并不意味着arraylist中的元素是不可变的。 让我们尝试将 11 个元素添加到这个数组列表中,看看会发生什么。

如果我们在添加第 10 个元素之前没有达到数组列表的第 11 个容量,一切都会好起来的。 数组列表通过将原始元素复制到更大的数组中并在新数组的末尾添加新元素来自动缩放。 这时,final关键字对数组列表的内容没有影响,因为我们没有更改它mylist引用。

如果我们添加第 11 个元素,arraylist 的容量已经达到 10,但我们没有改变它mylist,则程序仍将成功运行。 因为final关键字仅保证引用是不可变的,并且不限制引用指向的对象的内容。

但是,如果我们在添加第 11 个元素后尝试修改它mylist会遇到问题。 例如:

由于mylist被宣布为final,我们不能再将其指向新的 ArrayList 对象。 这是在 j**a 语言中final对关键字的限制。

final修改后的 arraylist 不会影响 arraylist 中元素的可变性,而只是确保引用是不可变的。

如果在添加第 11 个元素之前 arraylist 的容量未满,则一切正常。

如果容量已满,但没有尝试修改引用,则程序也将正常运行。

在添加第 11 个元素后尝试修改引用将导致编译错误,因为final关键字限制了引用的重新分配。

在实践中,我们通常不会声明一个finalarraylist 并尝试修改其引用。 这样的设计会引起混淆,不利于可读性和可维护性。 如果您需要一个不可变列表,请考虑使用它collections.unmodifiablelist方法或其他不可变的集合类。

希望通过这篇文章,你会对 j**a 感兴趣final修饰数组列表的问题更清楚了。 在面试中了解这些细节,不仅会展示你对 J**a 语言的深刻理解,还有助于你更好地设计和维护**。 如果您对此问题有更多疑问,请在评论区留言,我们将**!别忘了点赞分享 感谢您的支持!

如果您有任何问题或更多技术分享,请关注我的微信***知道它是什么,并知道为什么

相似文章

    修改血清的作用

    修饰精华液的精华效果修饰精华液是一种常见的护肤品,主要作用于改善皮肤的外观和质地,使其看起来更年轻 更健康 更容光焕发。下面我们将详细介绍修饰精华液的作用以及如何使用它。.改善肤质。修饰精华液通常含有高浓度的活性成分,可深入皮肤以改善其质地和弹性。使用后,皮肤变得更柔软 更光滑,减少细纹和皱纹的出现...

    陈艳丽的小Fe N4修饰Pt纳米颗粒用于甲醇氧化和氧还原反应

    用单个原子修饰铂 Pt 提供了一种很有前途的方法来调节其催化活性。基于此,中国石油大学 华东 陈艳丽教授 通讯作者 等据报道,一种创新的辅助活性位点 AAS 策略构建了高负荷 wt.的单个Fe N作为AAS,并进一步与小Pt纳米颗粒杂化,以增强氧还原反应 ORR 和甲醇氧化反应 MOR 的活性。对于...

    用于表观遗传修饰的神奇基因刷子

    近年来,表观遗传学已成为现代遗传学发展最快 最热门的子领域之一。与传统遗传学不同,表观遗传学是一种独立于基因序列的遗传调控机制,即在不涉及基因序列改变的情况下在基因组或染色质水平上调节基因表达的遗传行为。表观遗传学贯穿于个体生长发育的各个阶段,也参与到不同疾病的发生和发展中,其重要性和研究价值不亚于...

    HPG蛋白质修饰剂的应用 CAS 24645 80 5 蛋白质交联

    HPG HomopropargylGlycine 是一种含有炔烃官能团的非天然氨基酸。作为一种生物交联试剂,HPG可以通过细胞中的蛋白质合成进行机器翻译蛋氨酸 MET 位点替换,从而被引入新合成的蛋白质中炔烃官能团。以下是HPG作为生物交联试剂的主要应用 .蛋白质交联 HPG可用于特异性标记细胞中新...

    李沁的真诚与自然,不加修饰的美更是妩媚

    在繁忙的娱乐圈中,李琴偶像以清新自然的美貌和真诚的个性赢得了观众的喜爱。近日,一张李沁在沙滩上的照片在网络上广为流传,她没有经过任何美貌修饰,只是自然而然地展现出自己的样子。在这 中,李沁蹲在海边的沙滩上,目光专注而明亮地看着大勋。她的眼神中充满了真诚和自然,仿佛在这一刻,时间停止了。她没有刻意摆出...