List、Map和Set接口的区别

按照存储结构分为
Collection :单列集合
List :存放元素特征:有序 不唯一
ArrayList 数组 查找效率高 增删效率低 线程不安全
LinkedList 双向链表 增删效率高 查找效率低 线程不安全
Vector 数组 查找效率高 增删效率低 线程安全

Set:存放元素的特征:无序  唯一
        HashSet  哈希表存储元素 优点:增删,查效率高  缺点:元素无序   线程不安全
                 添加自定义元素,重写hashCode()和equals();
                                 重复项不能添加到容器中
        TreeSet  二叉树存储元素  唯一  按照元素自然顺序进行排列  查找元素效率高(折半查找)  线程不安全
                 添加自定义元素,需要在自定义类中实现java.lang.Comparable接口,在CompareTo()实现比较规则

Map接口(双列集合)采用键值对形式存放数据
key:唯一
value 不唯一 key重复,value覆盖
HashMap 哈希表存储元素 元素无序 线程不安全

        Hashtable   哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值  线程安全

        TreeMap   采用红黑二叉树  针对key值进行排序,按照制定的比较规则进行排序  线程不安全    

猜你喜欢

转载自blog.csdn.net/weixin_43992033/article/details/88841845