数组
1.List接口 ArrayList(查询快,增删慢,查询快) 内部通过数组实现,当数组大小不满足时需要增加存储能力,将已有的数组的数据复制到新的存储空间,当插入或者删除元素时候,需要对数组进行复制移动,代价高, 默认容量时10,扩容1.5倍 Vector(数组实现,线程同步) 支持线程同步,即某一时刻只有一个线程能够写vector,因为访问比ArrayList慢 LinkList(双链表结构,增删慢,查询快) 不支持高效的随机元素访问,LinkedList 是一个实现了 List 接口和 Deque 接口的双端链表。使得 LinkedList 类也具有队列的特性; LinkedList 不是线程安全的,如果想使 LinkedList 变 成 线 程 安 全 的 , 可 以 调 用 静 态 类 Collections 类 中 的 synchronizedList 方 法 : List list=Collections.synchronizedList(new LinkedList(...)); 2.Set接口 hashCode存储,如果想让两个不同的对象相等,必须覆盖object的hashCode方法和equals方法 HashSet(无序,哈希表) 按照哈希值存取数据,通过hashcode方法来获取,HashSet首先判断两个元素的哈希值