java集合框架
List,Set,Map的区别 List (对付顺序的好帮手): List 接口存储一组不唯一(可以有多个元素引用相同的对象)、有序的对象 Set (注重独一无二的性质): 不允许重复的集合,不会有多个元素引用相同的对象 Map (用Key搜索的专家): 使用键值对存储。 Map 会维护与 key 有关联的值。两个 key 可以引用相同的对象, 但 key 不能重复。典型的 key 是 String 类型,但也可以是任意对象 ArrayList与LinkedList的区别 1.是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 2.底层数据结构: ArrayList 底层使用的是 Object 数组, LinkedKList 底层使用的是 双向链表 数据结构 (JDK1.6之前为循环链表,1.7取消了循环); 3.插入和删除是否受元素位置的影响: a. ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素位置 的影响。比如:执行 add(E e) 方法的时候, ArrayList 会默认在将指定的元 素追加到此列表的末尾,这种情况复杂度就是O(1) 指无穷小量 。