栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java集合基础概念及源码流程分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java集合基础概念及源码流程分析

java集合

学习资源:b站 韩顺平 java集合/人人都是程序员 看动画学java集合 感谢二位的开源视频,无基础先看
《看动画学java集合》,有基础看 《 java集合》 文章为个人学习笔记,如有错误还请包涵

前 言
  1. 目的:为了方便和高效地存储大批量的数据,变量和数组是远远不够的,我们需要能动态扩容的容器来存储。

  2. java的集合

  3. 键值对

Collection
  • 分类
  • Collecion工具类
    • 排序方法
    • 查找替换
  • 迭代器Iterator
    • 所有的集合都实现了迭代器Iterable接口,迭代器是遍历集合的元素,并且返回。
    • 实现:1. 先新建迭代器 2. 调用hashnext方法 3. 调用next方法
    • 增强型for循环的底层实现也是迭代器
Collection Set
  • HashSet,由HashMap实现
    1. 无序,存取顺序不一致,其他特点与HashMap一致

    2. 区别,HashMap是以key-value存放,而HashSet则是把key当value用,而value则由统一的值代替。

    3. 添加元素时,如果在同一个下标处有别的值,则用equals进行比较,如果相同则放弃添加,不同则添加到后面。

    4. add方法初次添加,源码及流程分析

    5. add方法再次添加流程

  • LinkedHashMap,继承自HashSet,但是由LinkedHashMap实现及数组+双向链表,因此具有LinkedHashMap的特点

    1. 有序,由双向链表维护添加顺序,即存取顺序一致

    2. 其他特点与LinkedHashMap相同,key唯一,key可为null

    3. 区别:

    4. LinkedHashMap数组存放的节点为LinkedEntry,$表示内部类。

  • TreeSet

    1. 无序,存取顺序不一致,其他特点于TreeMap相同

    2. 实现了NavigableSet和SortedSet接口,可以使用Comparator的compareTo方法进行排序

    3. HashSet,LinkedHashSet,TreeSet的区别:

      HashSet,添加查询快性能优于后两者。LinkedHashSet添加修改删除快,有序
      TreeSet只有在需要对元素进行排序时使用

Map