面试之java集合
java集合 java集合分类:(普通集合、同步集合、并发集合) 普通集合 Connection接口 List 有序,可重复 ArrayList 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程不安全,效率高 LinkedList 优点: 底层数据结构是双向链表,查询慢,增删快。 缺点: 线程不安全,效率高 Vector 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程安全,效率低 Set 无序,唯一 HashSet 底层数据结构是哈希表。(无序,唯一) 如何来保证元素唯一性? 1.依赖两个方法:hashCode()和equals() LinkedHashSet 底层数据结构是链表和哈希表。(FIFO插入有序,唯一) 1.由链表保证元素有序 2.由哈希表保证元素唯一 TreeSet 底层数据结构是红黑树。(唯一,有序) Map接口(key-value 的键值对,key 不允许重复,value 可重复,重复时会覆盖前一个key) Map中的key:无序的、不可重复的,value:无序的、可重复的 HashMap:无序的,效率高,但不是线程安全的,key和value都允许为null。 TreeMap:有序的,底层使用红黑树,保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序或定制排序。 LinkedHashMap