java中的集合类理解

List

特点:元素有放入顺序,元素可重复

  • ArrayList :层数据结构使用数组结构, 查询速度快。但是增删稍慢。(线程不同步,数组0.5倍延长)
  • LinkedList:底层使用链表数据结构, 增删块, 但是查询慢。
  • Vector:底层是数组数据结构,查询增删慢(线程同步,数组百分百延长)已经被ArrayList取代

Map

特点:元素按键值对存储,无放入顺序

  • HashMap:非线程安全,高效,支持null
  • HashTable:线程安全,低效,不支持null
  • LinkedHashMap:线程不安全,有序,key和value都允许为空

Set

特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)

  • HashSet(底层由HashMap实现) :存储object的集合,既然是集合,就不允许有重复元素。判断两个元素是否相同,是由hashCode与equals方法共同完成的。
  • LinkedHashSet

你可能感兴趣的:(java中的集合类理解)