穿越 Java之旅 - 让我助你轻松搞定面试 第二章 集合

开发环境

基于:IntelliJ IDEAMaven构建工具JDK1.8SpringBoot 2.3.4Spring4.3.28编写。

官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装

更多干货

请参考:《穿越 Java 之旅 - 语法基础篇》
请参考:《穿越 Java 之旅 - Web基础篇 》
请参考:《穿越 Java 之旅 - 开发必备框架篇 》
请阅读:《穿越 Java 之旅 - SpringBoot框架篇》
请阅读:《穿越 Java 之旅 - SpringCloud微服务架构篇》
请阅读:《穿越 Java 之旅 - 让 我 助 您 轻 松 搞 定 面 试》

collection接口

List

  • ArrayList
    本质就是动态数组,动态扩容

  • LinkedList
    LinkedList是通过双向链表去实现的,他的数据结构具有双向链表的优缺点,既然是双向链表,那么的它的顺序访问效率会非常高,而随机访问的效率会比较低,它包含一个非常重要的私有内部静态类:Node

  • Vector
    和ArrayList很类似,都是以动态数组的形式来存储数据

  • Vector线程安全的
    每个操作方法都加的有synchronized关键字,针对性能来说会比较大的影响,慢慢就被放弃了

set

  • HashSet
    概念:
    HashSet实现Set接口,由哈希表支持,它不保证set的迭代顺序,特别是它不保证该顺序永久不变,运行使用null。
    特点:
    底层数据结构是哈希表,HashSet的本质是一个"没有重复元素"的集合,他是通过HashMap实现的.HashSet中含有一个HashMap类型的成员变量map.
  • TreeSet
    概念:
    基于TreeMap的 NavigableSet实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator进行排序,具体取决于使用的构造方法。
    本质:
    本质是将数据保存在TreeMap中,key是我们添加的内容,value是定义的一个Object对象。
    iterator迭代

map接口

特点:

  • 1.能够存储唯一的列的数据(唯一,不可重复) Set

  • 2.能够存储可以重复的数据(可重复) List

  • 3.值的顺序取决于键的顺序

  • 4.键和值都是可以存储null元素的

HashMap

  • 底层结构
    1. Jdk1.7及以前是采用数组+链表
    2. Jdk1.8之后 采用数组+链表 或者 数组+红黑树方式进行元素的存储
    3. 存储在hashMap集合中的元素都将是一个Map.Entry的内部接口的实现

TreeMap

  • 本质上就是红黑树的实现

  • 1.每个节点要么是红色,要么是黑色。

  • 2.根节点必须是黑色

  • 3.每个叶子节点【NIL】是黑色

  • 4.每个红色节点的两个子节点必须是黑色

  • 5.任意节点到每个叶子节点的路径包含相同数量的黑节点

总结:

待完善…

目前很多大佬都写过关于本教程了,如有雷同,请多多包涵.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值