JAVA中的集合

集合类型

(1)Set        (2)List        (3)Map

接口

        Collection  和 Map

单列集合

  • 概述:在内存中以单列的形式存储

  • Collection<<interface>>


Set接口

     特点:无序,无索引,无重复值,有且只有一个null,线程不安全

     数据结构:散列表(散列存储)

Set的实现类

  • HashSet 

        数据结构是散列表,即用哈希表来实现的

        特点:无序,无索引,无重复值,有且只有一个null值,线程不安全

  • TreeSet

        数据结构是红黑树,底层是TreeMap

        特点:无序,无重复值,默认升序排序,无null值


List接口

        LinkedList

                基于双链表实现的数据结构,增删快,查询慢

        ArrayList

                基于数组实现的,增删慢,查询快


双列集合

概述

  • 在内存中以双列的形式存储

特点

  • 双列的形式存储数据key-value
  • 元素是成对出现的,通过key访问value值
  • key不能有重复值,并且key有且至于一个null值,无序,value可以有重复值且可以有多个null值

Map<<interface>>

三种Map实现

HashMap:

  • HashMap的数据结构为哈希表,允许使用null键和null值,但是不保证映射的顺序
  • 适用于在Map中插入、删除和定位元素
  •  特点:键唯一且无序,值有序可重复,线程不安全

        扩容机制:默认初始容量为16,默认加载因子为0.75

            当阈值达到16*0.75=12是开始进行扩容

                        公式=当前容量*2


HashTable:

  • HashTable实现了一个哈希表,该哈希表将键映射到对应的值。任何非null对象都可以作为HashTable的键或者值,因此HashTable不允许设置null键和null值。
  • 线程安全
  • 在单线程环境下,性能低,适用于完全的线程安全

    扩容机制:默认容量为11,加载因子为0.75

        当阈值达到11*0.75是开始进行扩容

                        公式=当前容量*2+1


  • TreeMap:

        TreeMap基于红黑树实现的。TreeMap没有调优选项,因此该树一直处于平衡状态。TreeMap不允许null键,但允许null值


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值