(不定项选择题) 以下集合对象中哪几个是线程安全的?( ) A ArrayList B Vector C Hashtable D Stack 正确答案是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也是线程安全的 |
|