Java集合概念(一点点)

15 篇文章 0 订阅
13 篇文章 0 订阅

呜呜呜!我来迟了!
在这里插入图片描述
一开始计划的两天一更,硬拖到了两周一更了!在这里插入图片描述
感觉自己每天还是给自己安排了一堆事情,然后完全不可能完成,直接自己“鸽”掉,害!今天上传一下自己之前整理的一点点笔记,溜了溜了

Java集合

List,Set,Map都是接口,前两个继承至Collection接口,Map为独立接口集合

Set下常见的有HashSet,LinkedHashSet,TreeSet

List下常见的有ArrayList,Vector,LinkedList

Map下常见的有HashTable,LinkedHashMap,HashMap,TreeMap

List有顺序 可以重复

  • ArrayList 底层是数组 优点:效率高 查询比较快速能准确定位到元素。
    缺点:线程不安全 增删效率低。
  • Vector 底层是数组 优点:线程安全 查询比较快速能准确定位到元素。
    缺点:效率低 增删效率低。
  • LinkedHashSet 底层是链表 优点:效率高 增删效率较快。
    缺点:不安全 查询效率低。

Set无序 不可重复(唯一)

如何保证元素的唯一性?依赖HashCode()和equals()
  • HashSet 底层数据结构是哈希表。
  • LinkedHashSet 底层数据结构是链表(保证有序)和哈希表(保证唯一)。
  • TreeSet 底层是红黑树。

Map(接口)

  • TreeMap有序 不安全 基于红黑树
  • HashTable,HashMap是无序的
    HashMap基于Hash算法实现的(HashMap在1.7之前使用的是数组+链表实现,在1.8+使用的数组+链表+红黑树实现)
    1.当put元素时,利用key的HashCode重新计算出当前对象元素在数组中的下标。
    2.如果出现Hash值相同的key,当key相同,则覆盖原始值;当key不同(hash冲突),将key-value放入链表中。
    节点数据超过八个转为红黑树。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值