社区
Web 开发
帖子详情
请教ArrayList和LinkedList的区别!
sky_knight
2003-09-26 10:32:08
请问ArrayList和LinkedList中哪个可以从中间删除元素,我试了一下他们的remove(i)方法,好像都只能从尾部一个元素,i根本不起作用啊,是怎么回事?谢谢
...全文
246
5
打赏
收藏
请教ArrayList和LinkedList的区别!
请问ArrayList和LinkedList中哪个可以从中间删除元素,我试了一下他们的remove(i)方法,好像都只能从尾部一个元素,i根本不起作用啊,是怎么回事?谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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用的是链表的技术,因些它对于插放或者删除操作的效率很高,对于查询的效率却是不好。
Java期末考试试卷及相关解释
在进阶特性方面,可能会测试考生对泛型、集合框架(如
Array
List
、
Link
ed
List
、HashMap、TreeMap等)、枚举、注解、Lambda表达式以及Stream API的理解和应用。这些特性使得Java能够处理更复杂的数据结构和编写更简洁...
java语言复习药店
复习时应了解
Array
List
、
Link
ed
List
、HashSet、HashMap等常见集合类的使用方法和特点,以及它们在继承树中的位置。 6. **字符串处理**: String类是Java中处理字符串的主要工具,复习时需要熟悉字符串的不可变性,...
北师珠信院Java期末考试复习题.zip
12. **Chapter 12 - 集合框架**:涵盖
Array
List
、
Link
ed
List
、HashMap等集合类的使用,以及泛型和迭代器。 13. **Chapter 13 - 输入输出流**:讲解I/O流的分类和使用,如文件操作、缓冲流、对象序列化等。 14. **...
Java语言程序设计(基础篇-第6版)课后编程题答案
10. **集合框架**:
Array
List
、
Link
ed
List
、HashSet、HashMap等常用集合类的使用,以及泛型的理解。 在解答这些编程题时,学习者通常会遇到如何将理论知识应用到实际编程中的挑战。例如,通过编写简单的控制台应用...
java实验,包括源程序和题目要求(很详细)
4. **集合框架**:Java集合框架包含各种数据结构,如
Array
List
、
Link
ed
List
、HashMap等。在实验中,你可能会遇到如何使用这些集合来存储和操作数据的问题。 5. **IO流**:Java的IO流库用于处理输入输出,包括读写...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章