java集合框架

使用特定容器时应该 使用接口变量,保留其实际的对象实现类型

Collection接口

  • add方法
  • iterator方法
    返回迭代器

迭代器

实现

list

  • linkedlist 数组中间删除或增加元素代价小
  • linkedlist 不支持随机访问,仅支持迭代器访问,ArrayList随机访问支持良好
  • Vector默认同步执行所有方法, ArrayList需额外同步线程

Set

  • hash 实现set,根据元素的hash code放在不同的bucket里,bucket为链表(相比完美hash,用链表解决冲突)
    元素需要实现hashcode接口

  • tree实现set, 元素放入平衡二叉树,有序,查找时间为logm,慢于hash
    元素需要实现Comparable接口

队列

  • 双端队列
  • 优先级队列,内部为堆形式实现
    元素需要实现Comparable接口

map

  • key作为set元素,同样分为hash和tree实现,关联value
  • 提供的集合视图
    • KeySet()返回key集,只是set接口
    • Values()返回value集合
    • entrySet()返回kv对集合

记住get/put顺序的set/MAP

  • 额外的将元素linked,以记住其get/put顺序
  • linkedHashMap按访问顺序排序key,可以实现最多访问驻留有限容量

视图

某个集合接口对象的浅包装

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容