Java——集合框架

在Java中,集合类主要是Collection和Map两个接口派生出

Collection

Collection接口派生出Queue(队列),List(有序集合),Set(无序集合)三个主要的接口

List 和 Set 的区别:

        List 是有序的,可重复,有索引

        Set 是无序的,不可重复,没有索引

List 下又分为 ArrayList,LinkedList,Vector三类

ArrayList:底层使用数组实现,查询效率高,增加和删除效率低,线程不安全

LinkedList:不仅实现了 List 接口,还实现了 Queue 接口,可以用作栈的实现,也可以用作队列的实现,底层使用链表,查询效率低,增加和删除效率高,线程不安全

Vector:底层使用数组,查询效率高,增加和删除效率低,线程安全     

  Set 分为 HashSet,TreeSet,LinkedHashSet

HashSet:底层使用数组+链表+红黑树,元素无序,唯一,线程不安全,效率高,可以存储 nul 元素

TreeSet:底层使用红黑树,元素唯一,正常情况下不能有 null 值,但在重写 Comparable 接口后,可以有 null 值

LinkedHashSet:底层使用哈希表+链表实现,元素有序,线程不安全,可以有 null 值

Queue 下分为PriorityQueue 和 Deque

PriorityDueue:有序,这个有序并非是存储顺序,而是按照存储元素的大小进行排序,PriorityDueue中不允许有 null 值

Deque:是Queue的子接口,代表的是一个双端队列

Map

Map 集合分为HashMap,Hashtable,LinkedHashMap,TreeMap四种

HashMap:底层使用数组+链表+红黑树实现,线程不安全,key(键)可以为 null 值,无序

Hashtable:底层使用数组+链表实现,线程安全,key不能为 null 值,无序

LinkedHashMap:底层使用哈希表+双向链表实现,哈希表实现快速的查找操作,双向链表用来维护插入顺序或者访问顺序,因此是有序的,线程不安全,key 可以为 null 值

TreeMap:底层使用红黑树,线程不安全,key 不能为 null 值,有序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值