美文网首页
【Java梳理】集合类

【Java梳理】集合类

作者: 田文健 | 来源:发表于2017-12-12 10:45 被阅读0次
    在处理数据集合的时候,我们会用合适的数据结构来保存它们(主要考虑空间,性能,并发能力等因素)。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

    相关文章

      网友评论

          本文标题:【Java梳理】集合类

          本文链接:https://www.haomeiwen.com/subject/wjwzvxtx.html