JDK中集合类

数据结构:是数据存储时各个元素之间的关系。

分4种基本类型:集合、线性结构、树形结构、图状结构;

JDK中的集合类:List、Set、Queue、Stack、Map

基本特点

1、List/Set/Queue都继承Collection接口,Map是单独的接口

2、List存储类型一致数据可以保证存储的顺序,但不保证元素是否重复;

Set存储类型一致的数据,不保证数据的存储顺序,但保证存储的元素唯一;

Queue保证数据先进先出的顺序;

Map存储key-value类型的数据,key不重复(若重复会覆盖原key对应的value值).

 

实现类

ArrayList:实现List接口,是动态数组实现的顺序表。数组实现,访问速度快,占用空间小,不适合频繁的增删节点。

Vector:实现List接口,动态数组实现,元素有序,线程同步的

LinkedList:实现List接口,是基于链表实现的顺序表。链表实现,适合长度不固定、元素增删频繁时使用。

HashSet:存储元素可自动去重复,无序访问,存储对象必须实现hashcode()方法(这就是为什么不能存储基本数据类型)

TreeSet:可对元素去重,保证元素的插入顺序,可对元素排序(保存的元素需要实现Comparable接口,重写compareTo方法)

HashMap:实现Map接口,是由数组+链表实现的(依据key的hash值决定在数组上的存储位置,若hash冲突时保存到链表子节点上)

WeakHashMap:继承AbstarctMap,实现Map接口;key对象弱引用

LinkedHashMap:继承HashMap,会保存数据的插入顺序

ConcurrentHashMap:实现Map接口,自带同步锁(线程安全,在多线程情况下可以使用)

HashTable:线程安全的map

TreeMap:继承AbstarctMap,实现Map接口;可以key值自动排序

Stack(栈):继承Vector;元素后进先出(有入栈和出栈操作);线程安全

Queue(队列):继承List接口;可进行出队、入队操作(LinkedList也可以实现)

ConcurrentLinkedQueue

SynchronizedQueue

BlockingQueue:阻塞队列,继承Queue;线程安全(可执行先进先出或后进先出操作);

子类还有ArrayBlockingQueue、LinkedBlockingQueue、DelayQueue、PriorityBlockingQueue、

SynchronousQueue

BlockingDeque:双端阻塞队列,继承BlockingQueue;

实现类有LinkedBlockingDeque

TransferQueue:继承BlockingQueue;

实现类有LinkedTransferQueue

 

 

 

 

转载于:https://my.oschina.net/u/2345654/blog/1505985

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值