面试总结

本文探讨了Java中equal与==的区别,详细分析了ArrayList与LinkedList的对比,包括它们的时间复杂度与空间复杂度,以及在不同场景下使用这两种数据结构的优劣。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、equal与==的区别


1、== 能比较一切(基本数据类型,引用型数据类型,数组)比较的是(基本数据类型是值,引用数据类型是地址,就是完全的相等的一个对象)

2、equals只能比较(引用数据类型,数组)。包装类和String都是比较的里面的值。里面的值相同则是ture,不管new不new。而对象,也是比较的地址,其他情况都是不相等。


2、ArrayList与LinkedList对比,以及删除一个E对象的时间复杂度

Java中ArrayList和LinkedList区别 时间复杂度 与空间复杂度

ArrayList的删除的时间复杂度是O(n) = for找到元素 + arraycope后面的元素填充过来

LinkedList也是O(n) = for找到元素 

虽然ArrayList的remove(int index)和remove(Object o)也是O(n)时间,但是移动耗费的时间远比LinkedList中往后寻址来的快得多,特别是元素很多的时候。JDK的源码里,这个操作是用System.arraycopy()来做的。所以,这时,LinkedList的最为坑爹的地方,也是最令人不解的地方就出现了——remove的操作居然比ArrayList还慢,而且慢的多!


通常说的Al是O(n) LL是O(1)(unlink(Node e)方法是O(1) ,因为Node节点已经制定了)是因为在已知   i    或者是LinkedList的位置的时候。因为AL虽然不用找,但是要移动后面元素。LL直接删。



当删除的数量多了,ArrayList删除的时间就慢,因为他要不断的向前移动数字。

而LinkedList删除的快,linkedList只要找到了以后,直接断链接上就行。而linkedlist不用移动

若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList(LinkedList数据结构导致,单次寻找有些慢,而ArrayList中,复制数组移动system.arrayof()效率比较高)。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。  这一点我做了实验。在分别有200000条“记录”的ArrayList和LinkedList的首位插入20000条数据,LinkedList耗时约是ArrayList的20分之1。

https://blog.youkuaiyun.com/qq_21544879/article/details/51909473


或者是删除指定的一个节点,例如都删除第一个元素。AL是O(n),因为要把后面元素往前移动;LL是O(1),因为在对象中有指向第一个节点的指针,所以直接删除

3、三张图片平分一个界面 Layout_weight


4、startservice  与 broadcast的区别



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值