您所在位置: 网站首页 / 对java集合类的一些总结.docx / 文档详情
对java集合类的一些总结.docx 立即下载
2025-08-27
约2.6万字
约40页
0
30KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

对java集合类的一些总结.docx

对java集合类的一些总结.docx

预览

免费试读已结束,剩余 35 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

对java集合类的一些总结

第一篇:对java集合类的一些总结13、java中的集合类答:所有的集合类都实现了iterator接口,用于遍历集合中的元素,iterator接口中的方法有hashNext(),next(),remove()三种方法,不同的集合类提供了不同的实现(无序集合实现这个接口,只能向后遍历)。如果要实现向前遍历,也就是说集合中的元素是有序的,实现的是linkedIterator接口,这是iterator的子接口,实现了这个接口的类能实现双向(前后)遍历。Hashset:hashset继承了抽象类AbstractSet,而AbstractSet类又实现了set接口,并且AbstactSet又继承了AbstractCollection,AbstractCollection实现了Collection接口,因此hashset实际上实现了collection接口,又实现了set接口,因为所有的集合接口都实现了iterator接口,因此hashset可以上转型为set,collection,以及iterator,并且调用响应的方法。特点:hashset不能存放重复的元素,并且采用散列的存储方法,因此元素的插入与输出并不是一致的。附:散列是使用了数组和链表来进行存储的一种结构,数组是连续的,每个数组的元素都是一条链表。ArrayList:ArrayList继承了AbstractList并且实现了List接口。其中AbstractList继承了AbstractCollection并且实现了List接口,AbstractCollection实现了Collection接口,因此AbstractList可以说是间接或者是直接实现了List,Collection,iterator接口。ArrayList使用的数据结构是数组。方便对元素的检索,但是增删需要移动数组元素,因此不适合增删,增删使用链式存储的线性表(如:LinkedList)会比较方便,详细见LinkedList。LinkedList:linkedList继承了AbstractSequentialList并且实现了List接口,AbstractSequentialList继承了AbstractList,Abstractlist继承了AbstractCollection接口,因此LinkedList也是有序集合。LinkedList在java中的实现是双向链表,因此LinkedList对空间的利用率比较高,但是对元素的检索较慢,但是增删较快,只需要简单调整链的指向即可。Vector:Vector的结构和ArrayList几乎相同,不同的地方就是在公有方法层次上,Vector加了关键字synchronized,因此理论上来说,Vector每个方法都是现成安全的。但是个人认为(包括查资料了解到)这并不能完全保证并发访问下的线程安全。在并发访问情况下,任何时候都只能有一个线程去访问其中的共有方法,在方法级别是线程安全的。但是现在有两个线程A、B,线程A向Vector添加一个对象,此时线程B查询Vector的长度是1,但是线程B并没有进行任何操作(插入操作),这样仍然会造成并发问题,但是在线程A、B都进行插入操作的时候,jvm会根据自动进行线程调度从而确保在任何时刻只有一个线程操作Vector的插入操作。因此在Vector之后,新版的jdk里面有了arraylist(非线程安全),其实我认为就是把并发控制的问题交给程序员处理。Stack:Stack是栈结构,后进先出。Stack继承Vector,并且新增了一些方法,例如出栈,入栈操作。Stack内部的方法也是加了synchronized关键字的,因此,也是“线程安全”的。HashMap:HashMap继承了AbstractMap并且实现了Map接口,而AbstractMap也实现了Map接口,总的来说hashMap实现了Map接口以及abstractMap的一些方法。hashMap是通过键值对来存储以及检索数据的。HashMap是通过一个数组以及链表组合来存储数据的。java中的hashMap的实现是一个长度为16的数组,并且每个数组存储都是一个单链表,存储一个数据的时候,根据key的hash值去判断到底应该存在下标为多少的数组中,找到对应的数组位置后,并且一直对这个位置的链向后索引,查到链的最后面。hashMap综合了线性表以及链表的优点,使检索以及增删都变得方便。附:非线程安全,并且hashMap可以存储null值HashTable:HashTable也是一个散列表(和hashMap一样),存储的是键值对,HashTable继承于Dictionary,实现了Map接口,和hashMap最大的区别是:hashTable的读写方法
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

对java集合类的一些总结

文档大小:30KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用