【Java梳理】集合类

在处理数据集合的时候,我们会用合适的数据结构来保存它们(主要考虑空间,性能,并发能力等因素)。Java提供了强大的集合类可以满足大多数时候的数据处理需求。

从一张图中看Java的集合类关系:

集合类关系,原图连接https://www.cnblogs.com/leeplogs/p/5891861.html

先看最上面的三个接口,Iterator 迭代器定义一种遍历访问集合的方式,同时包含remove方法。它不是存储数据的集合。Collection Set和List集合都实现了这个接口。Map 是一种键值对的的数据结构,不允许存在多个相同的键, 一个键对应一个值。

下面继承Collection 的数据结构有Set,List,Queue。Set是一种不重复的数据集合,所以使用Set集合做去重操作比较便捷。List是一种最常用的有序集合。Queue是队列,即在队列的一个方向存数据,另一个方向取数据。
另外Stack表示栈结构,它就像是一个桶,先放数据在最底下,所以每次取出的数据是最近放入的未取出数据。

数据结构有基于数组,链表,hash表这几种主要的实现方式。

数组是一块连续的内存块,基于数组实现的数据随机访问速度块,因为可以基于地址偏移计算对象的内存地址。缺点是在集合扩容时可能会重新分配数组空间,耗时而且产生需要回收的内存块。另外一个是在添加和删除其中的某一个对象时,可能会造成其他对象的位置移动。

链表是每个对象节点通过地址引用串联起来的一个数据结构,优点是不需要连续的内存空间,当添加和删除时,只需要修改节点的引用关系即可。缺点是在随机访问元素时速度较慢。

hash表通过计算key的hash值来确定元素在数据结构的位置。

参考连接:https://www.cnblogs.com/leeplogs/p/5891861.html

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

推荐阅读更多精彩内容

  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,795评论 24 1,002
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,366评论 11 349
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,288评论 0 16
  • 不知何时起,朋友们都说时时感觉身边的快乐越来越来少,而我却不是这么想的。 在世间穿行,但凡不都是快乐的;如...
    籍境观心阅读 191评论 0 2