编程语言
首页 > 编程语言> > Java刷题笔记----->集合类

Java刷题笔记----->集合类

作者:互联网

1.ArrayList与Vector的区别?

一般提到某某集合区别,感觉必有线程安全
Arrylist线程不安全,Vector反之

2.HashMap和HashTable的区别?

几个方面:线程是否安全,效率问题,对Null Key和Null value的支持,初始容量大小和每次扩容量大小的不同,底层数据结构的不同(这又涉及到链表和红黑树了,而面试很喜欢考红黑树。。。)

3.HashMap和HashSet的区别?

HashMapHashSet
实现了Map接口实现Set接口

4.HashMap多线程操作导致死循环问题

原因在于并发下的Rehash会造成元素之间形成一个循环列表。不过JDK1.8后解决了这个问题,但是不建议在多线程下使用HahsMap,因为多线程下HashMap还是会存在其他问题比如数据丢失。并发环境下推荐使用ConcurrentHashMap。

5.集合框架底层数据结构总结

1. List

6.如何选用集合?

主要根据集合的特点来选用,比如我们需要根据键值获取到元素值时就选用 Map 接口下的集 合,需要排序时选择 TreeMap ,不需要排序时就选择 HashMap ,需要保证线程安全就选用
ConcurrentHashMap 。
当我们只需要存放元素值时,就选择实现 Collection 接口的集合,需要保证元素唯一时选择实现 Set 接口的集合比如 TreeSet 或 HashSet ,不需要就选择实现 List 接口的比如 ArrayList 或 LinkedList ,然后再根据实现这些接口的集合的特点来选用。

稍微看了下:红黑树工作原理

文章质量好差,基本上没有自己思考的过程,一个劲的照抄,这可能是我最后一篇了害。果然还是太菜了…

标签:黑树,Java,HashMap,接口,链表,-----,数组,LinkedHashMap,刷题
来源: https://blog.csdn.net/qq_46148737/article/details/119113236