(不定项选择题) 以下集合对象中哪几个是线程安全的?( )
A ArrayList
B Vector
C Hashtable
D Stack
答案解析 ID:javaxxf
正确答案是BCD
集合框架:
Collection:
List:(有序,可重)
ArrayList:有序,可重复;底层使用数组,查询快,增删慢;线程不安全,效率高;容量不足时扩增为当前容量*1.5 + 1;
Vector:有序,可重复;底层使用数组,查询快,增删慢;线程 安全,效率低;容量不足时扩增为当前容量*2;
LinkedList: 有序,可重复;底层使用双向循环链表,查询慢,增删快;线程不安全,效率高;不存容量不足的情况;
Set
HashSet: 底层采用HashMap实现,故性质和HashMap类似
TreeSet: 底层采用TreeMap实现
LinkedHashSet:底层采用LinkedHashMap实现
Map
HashMap: 无序,不可重复(但可以为null),底层采用数组和链表结合的数据结构;线程不安全,效率高;容量一直为2的n次方,即每次都是扩充为原来的2倍
Hashtable: 无序,不可重复(不可以为null),底层采用数组和链表结合的数据结构;线程安全,效率高;容量一直为2的n次方,即每次都是扩充为原来的2倍
TreeMap: 无序,不可重复,底层采用二叉树实现;线程不安全
LinkedHashMap:底层采用链表和哈希表实现,有序,不可重复
故线程安全的有Vector,Hashtable,Stack因继承Vector也是线程安全的
提示:不懂的朋友可以把上面解析背一下!不但可以增强自己对知识点的掌握!而且对以后工作面试也有帮助!给自己定一个任务!每天就背一个知识点!日积月累!希望大家跟着本公众号一起进步!
点击下面的“阅读原文”查看以前的面试题
记得分享给身边有需要的人
小编微信:xxf960326
推荐阅读目录
⊙ Java学习求职路线(资料、视频、源码、项目实战)
⊙ 程序员用这5种方式学习编程最无效,停止这些可以少走弯路!
⊙大学毕业刚培训完Java,没有经验怎么找工作呢?
⊙请问你知道什么是栈吗?
⊙看看你对队列的了解有多少?
⊙面试题68(加深你对栈的理解_让你知道什么是栈)
⊙来测试一下你对数据结构中的栈和队列的了解有多少?
⊙面试题63(链表,哈希表)
⊙ 请你对Java中树的了解有多少?
⊙ 这个培训机构怎么?
⊙ JavaEE就业学习路线(给初学者以及自学者一个学习方向)?
⊙ Servlet实现一个简单的登录【验证码】功能
⊙二维码生成源码
⊙java学习微信讨论群
⊙Spring学习笔记
⊙Mybatis学习笔记