总结Java中的集合类

太过爱你忘了你带给我的痛 2022-06-14 06:08 255阅读 0赞

Center单例集合:都继承自Collection接口:

-————-| Collection(List和Set):

-——————————-| List(特点是有序可重复)

-—————————————-| ArrayList,底层使用Object数组实现,所以特点就是查询快,增删改慢。在增和删的时候会

牵扯到数组增容,以及元素拷贝,所以慢

-—————————————-| LinkedList,底层使用链表实现,特点是查询慢,增删快。由于是使用链表实现,增加时

只需要让前一个元素记住自己就可以。删除时让前一个元素记住后一个元素,后一个

元素记住前一个元素,这样增删的效率就比较高,但是查询的时候需要

一个一个的遍历,所以效率极低

-—————————————-|Vector:底层和ArrayList一样使用数组实现,但是它是线程安全的,相对应的

就效率低一些。

-——————————-| Set (特点是无序不可重复)

-—————————————-| HashSet,底层是使用Hash表实现的,首先它会调用hashCode函数去看看那个位置上有没有

元素,如果没有,就直接插入。如果有,就再调用equals函数判断两个地址是否相同,
如果相同则不能插入。如果不同,则可以插入。

-—————————————-| TreeSet 底层是红黑树(二叉树),默认对匀速进行自然排序,如果在比较两个对象的时候

返回值是0,那么元素重复。

双例集合:Map,以键值对的形式存储,键不可重复,值可以重复

-—————————————-| HashMap 线程不安全,存取速度快,底层是以Hash表实现的

-—————————————-| TreeMap 红黑树的数据结构,默认对元素进行自然排序。如果在比较两个对象的

元素的返回值是0,那么元素重复。

-—————————————-| HashTable 底层也是使用了Hash表,存取速度快,它是线程安全的。

HashMap和Hashtable的区别:

HashMap是非synchronized,Hashtable是synchronized的,这就意味着Hashtable是线程安全的,
多个线程可以共享同一个Hashtable.

HashMap可以接受为null的键和值,但是Hashtable不可以。

发表评论

表情:
评论列表 (有 0 条评论,255人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java集合

    1. 集合类(容器类) 保存数量不确定的数据,以及具有映射关系的数据(关联数组) Set代表无序,不可重复的集合(Set集合无法记住添加元素的顺序,所以元素不

    相关 Java集合总结

    一、为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多 个对象的操作,就对对象进行存储,集合就是存储对象最常用的一

    相关 Java集合总结

    集合 1、 面向对象语言对事物的描述是通过对象体现,如果想要存储多个对象就需要集合。 2、 数组和集合的区别  a) 长度不同   i. 集合长度可变