java集合

List

继承自Collection接口,存放有序可可重复的对象,拥有一系列和索引相关的方法。查询速度快。List集合删除和修改数据时,伴随着后面数据的移动,所以插入和删除数据速度比较慢。

实现类

  • ArrayList:适用于快速随机访问元素。
  • LinkedList:底层基于链表实现,链表内存是散乱的,每个元素存储本身内存地址的同时,还存储下一个元素的地址,链表增删快,查找慢。插入和删除数据,不涉及重排数据。
  • Vector:同步线程安全的。适用于设计堆栈、队列等操作。

Set

继承自Collection接口,存放无序不能重复的对象。元素放入顺序无序,但是元素在set集合中的位置由元素的hashcode决定。

实现类

  • HashSet:实现了Set接口,仅存储对象,适用add()将元素放入set中。使用成员对象计算hashcode值。
  • LinkedHashSet

Map

存储键值对,键不可以重复,值可以重复,根据键获取值。遍历map集合时先获得键的set集合,然后对set集合遍历得到对应的值。

实现类

  • HashMap:非线程安全,允许键或值为空。hashmap的迭代器是fail-fast。hashmap实现了Map接口。使用put将元素放入map中。使用键对象计算hashcode值。put时调用键对象的hashcode()方法计算hashcode,然后找到bucket位置存储值对象。获取对象时,通过eques方法找到对应的键值对,返回值对象。使用链表解决碰撞问题。
  • HahsTable:线程安全,在单线程模式下比hashmap要慢,不允许键或值为空,多个线程可以共享一个hashtable。hashtable的迭代器是enumrator
  • LinkedHashMap
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值