简单谈谈Collection集合和Map集合 曾经终败给现在 2022-06-12 04:56 231阅读 0赞 ## Collection(接口) ## ### |----List(接口):元素是有序的,元素可以重复,因为该集合体系有索引。 ### #### |----ArrayList(类,实现List接口):底层的结构使用的是数据结构。特点:查询速度很快,但是增删除稍慢,线程不同步,不安全。 #### #### |----LinkedList:底层使用的是链表结构。特点:查询速度稍慢,但是增删很快,线程不同步。 #### #### |----Vector:底层是数组数据结构,支持枚举,线程同步,被ArrayList替代了。 #### ### |----Set(接口):元素是无序的(存入和取出的顺序不一定一致),元素不可以重复。 ### #### |----HashSet(类,实现Set接口):底层数据结构是哈希表结构,线程不同步。保证数据唯一性的原理,判断元素的hashCode值是否相同。如果相同,还会继续判断元素的equals方法,是否为true。 #### #### |--TreeSet:可以对Set集合中的元素进行排序。底层数据结构使二叉树结构,存放的元素不为对象时,存放元素顺序默认为元素的自然顺序。存放的元素为对象时, 如Student类,无法进行排序时,需要将Student类实现Comparable接口,重写compareTo方法自定义排序。保证元素唯一性的依据是:compareTo方 法return 0,只要是返回0,就认为元素相同。返回1,大于。返回-1,小于。 #### ## Map(接口) ## ### |----Hashtable(类,实现Map接口):底层是哈希表数据结构,不可以存放null键,null值。元素是无序的,该集合线程同步,jdk1.0,效率低。 ### ### |----HashMap:底层是哈希表数据结构,允许使用null键null值。元素是无序的,该集合线程不同步,jdk1.2,效率高。 ### ### |----TreeMap:底层是二叉树数据结构,线程不同步。可以用于给map集合中的键进行排序。 ###
还没有评论,来说两句吧...