新乡做网站的多吗,网站分类导航代码,临沂森佳木业有限公司,wordpress 二维码登录原java 集合(list#xff0c;set#xff0c;map)三者之间的关系和区别一#xff1a;先上一张关系图#xff0c;让大家看的更明白。备注#xff1a;其中红色部分为实现#xff0c;其他地方均为接口。二#xff1a;各自的特点。List 有序,可重复ArrayList优点: 底层数据结…原java 集合(listsetmap)三者之间的关系和区别一先上一张关系图让大家看的更明白。备注其中红色部分为实现其他地方均为接口。二各自的特点。List 有序,可重复ArrayList优点: 底层数据结构是数组查询快增删慢。缺点: 线程不安全效率高Vector优点: 底层数据结构是数组查询快增删慢。缺点: 线程安全效率低LinkedList优点: 底层数据结构是链表查询慢增删快。缺点: 线程不安全效率高Set 无序,唯一HashSet底层数据结构是哈希表。(无序,唯一)如何来保证元素唯一性?1.依赖两个方法hashCode()和equals()LinkedHashSet底层数据结构是链表和哈希表。(FIFO插入有序,唯一)1.由链表保证元素有序2.由哈希表保证元素唯一TreeSet底层数据结构是红黑树。(唯一有序)1. 如何保证元素排序的呢?自然排序比较器排序2.如何保证元素唯一性的呢?根据比较的返回值是否是0来决定三我们怎么来使用。针对Collection集合我们到底使用谁呢?唯一吗?是 set 排序吗 ?是TreeSet或LinkedHashSet否HashSet否 list 要安全吗是vector否ArrayList 或 LinkedList四Map。有序TreeMap无序HashMap和HashTableHashMapjdk1.7 底层为数组单链jdk1.8 底层为数组单链红黑树默认长度为16为什么是16不是其他的数字呢只要是2的次幂就可以了。负载因子为0.75当链表的长度大于8时转为红黑树。LinkedListLinkedList是基于链表的它是一个双向链表每个节点维护了一个prev和next指针。同时对于这个链表维护了first和last指针first指向第一个元素last指向最后一个元素。LinkedList是一个无序的链表按照插入的先后顺序排序不提供sort方法对内部元素排序。HashSetHashSet是基于HashMap来实现的操作很简单更像是对HashMap做了一次“封装”而且只使用了HashMap的key来实现各种特性而HashMap的value始终都是PRESENT。HashSet不允许重复(HashMap的key不允许重复如果出现重复就覆盖)允许null值非线程安全。