社区
Web 开发
帖子详情
请教ArrayList和LinkedList的区别!
sky_knight
2003-09-26 10:32:08
请问ArrayList和LinkedList中哪个可以从中间删除元素,我试了一下他们的remove(i)方法,好像都只能从尾部一个元素,i根本不起作用啊,是怎么回事?谢谢
...全文
276
5
打赏
收藏
请教ArrayList和LinkedList的区别!
请问ArrayList和LinkedList中哪个可以从中间删除元素,我试了一下他们的remove(i)方法,好像都只能从尾部一个元素,i根本不起作用啊,是怎么回事?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sky_knight
2003-09-26
打赏
举报
回复
以你这么说,就是ArrayList是可以实现从中间删除一个元素的?可是在我的一个程序功能中,有两个JSP页面,第一个页面中生成一个STATIC的静态ArrayList对象,然后到第二个页面进行删除LIST中的某个元素的操作,例如:我原来LIST中有object0,object1,object2,object3共4个元素,我在第二个页面执行LIST.remove(1);然后把他们打印出来,结果是:object0,object2,object3,这是正确的,然后再返回到第一个页面等待其它操作,可是发现在第一个页面里显示出来的LIST中的内容却是:object0,object1,object2了,把最后一个object3删除了,而object1却还在,太郁闷了!到底要怎么用呢?
ioriwellings
2003-09-26
打赏
举报
回复
ArrayList是List接口的一个可变长数组实现。实现了所有List接口的操作,并允许存储null值。除了没有进行同步,ArrayList基本等同于Vector。在Vector中几乎对所有的方法都进行了同步,但ArrayList仅对writeObject和readObject进行了同步,其它比如add(Object)、remove(int)等都没有同步。
看看它的remove 源:
public Object remove(int index)
{
RangeCheck(index);
modCount++;
Object oldValue = elementData[index];
int numMoved = size - index - 1;
if (numMoved > 0) System.arraycopy(elementData, index+1, elementData, index, numMoved);
elementData[--size] = null; // Let gc do its work return oldValue;
}
RangeCheck()的作用是进行边界检查。由于ArrayList采用一个对象数组存储元素,所以在删除一个元素时需要把后面的元素前移。删除一个元素时只是把该元素在elementData数组中的引用置为null,具体的对象的销毁由垃圾收集器负责。
这个就可以实现 删除 指定位置的元素。
sky_knight
2003-09-26
打赏
举报
回复
谢谢各位了,很不好意思,是我自己的程序出了个小bug
ji66
2003-09-26
打赏
举报
回复
Linkedlist 可以在链表头尾增加、删除、插入元素
youfly
2003-09-26
打赏
举报
回复
ArrayList的实现采用了动态数组,因此它的插入或者删除的效率会变得不好,但有很好的数据遍历性能。linkedList用的是链表的技术,因些它对于插放或者删除操作的效率很高,对于查询的效率却是不好。
Array
List
和
Link
ed
List
的
区别
看这一篇就够了!
本文详细对比了
Array
List
和
Link
ed
List
在查询、增删操作上的性能差异。
Array
List
基于数组,查询快速但增删可能涉及扩容和拷贝;
Link
ed
List
基于链表,查询较慢,但理论上增删操作更快,前提是已知元素位置。实际应用中,选择应根据具体场景来定。
深入有趣的理解
Array
list
与
Link
ed
list
以及关于Vector的
区别
!
本文详细对比了
Array
List
与
Link
ed
List
两种数据结构的特点与应用场景。
Array
List
适用于频繁读取数据的情况,而
Link
ed
List
则在频繁插入与删除数据时表现出色。此外,还探讨了
Array
List
与Vector的
区别
。
面试必问!
Array
List
和
Link
ed
List
究竟有什么
区别
?
本文详细分析了
Array
List
和
Link
ed
List
的
区别
,包括它们所继承的类和接口、数据结构以及在查询、添加和删除元素时的性能差异。
Array
List
基于数组,适合随机访问,而
Link
ed
List
采用双向链表,擅长于中间位置的插入和删除。数据结构的不同决定了两者在操作上的性能优劣,如
Array
List
在查询上更高效,因为数组内存连续,而
Link
ed
List
则在插入和删除上更快,因为不需要移动大量元素。
Array
List
和
Link
ed
List
的
区别
!~
本文对比了
Array
List
与
Link
ed
List
两种数据结构在添加与查询操作上的性能差异。
Array
List
适用于频繁查询而较少变动的情况,而
Link
ed
List
则更适合频繁进行添加和删除操作。
【Java】
Array
List
和
Link
ed
List
区别
?想秒懂就进来看!
本文详细对比了
Array
List
与
Link
ed
List
这两种Java集合框架中
List
接口的具体实现。从底层数据结构、查询效率、添加操作等方面进行了深入分析,并提供了使用场景建议。
Web 开发
81,111
社区成员
341,725
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章