当前位置:   article > 正文

Java集合List、Set与Map区别及适用场景总结_list和set的应用场景

list和set的应用场景
  1. List和Set都是继承自Collection接口,Map则不是

  2. List元素有放入顺序,元素可重复,和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。Set元素无放入顺序,元素不可重复,重复元素会覆盖掉,Set检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

  3. Map是一个接口,适合储存键值对的数据

  4. 线程安全集合类与非线程安全集合类

    • LinkedList、ArrayList是非线程安全的,Vector是线程安全的

    • HashMap、HashSet是非线程安全的,HashTable是线程安全的

    • StringBuilder是非线程安全的,StringBuffer是线程安全的

  5. ArrayList与LinkedList的区别和适用场景

    • Arraylist:

      优点:ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)。

      缺点:因为地址连续, ArrayList要移动数据,所以插入和删除操作效率比较低。

    • LinkedList:

      优点:LinkedList基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址,对于新增和删除操作add和remove,LinedList比较占优势。LinkedList 适用于要头尾操作或插入指定

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/973906
推荐阅读
相关标签
  

闽ICP备14008679号