• java常用集合总结


    1、线程安全
    线程安全就是说多线程访问同一代码,不会产生不确定的结果。

    2、List类和Set类
    List类和Set类是Collection集合接口的子接口。
    Set子接口:无序,不允许重复。
    List子接口:有序,可以有重复元素。

    Set和List对比:
    Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
    List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。

    Set和List具体子类:
    Set
    |————HashSet:以哈希表的形式存放元素,插入删除速度很快。

    List
    |————ArrayList:动态数组
    |————LinkedList:链表、队列、堆栈。

    Array和java.util.Vector
    Vector是一种老的动态数组,是线程同步的,效率很低,一般不赞成使用。

    3、HashMap和HashTable
    a.HashMap去掉了HashTable的contains方法,但是加上了containsValue()和containsKey()方法。
    b.HashTable同步的,而HashMap是非同步的,效率上比HashTable要高。
    c.HashMap允许空键值,而HashTable不允许。

    4、线程安全集合类与非线程安全集合类
    LinkedList、ArrayList、HashSet是非线程安全的,Vector是线程安全的;
    HashMap是非线程安全的,HashTable是线程安全的;
    StringBuilder是非线程安全的,StringBuffer是线程安全的。

    5、集合适用场景
    对于查找和删除较为频繁,且元素数量较多的应用,Set或Map是更好的选择;
    ArrayList适用于通过为位置来读取元素的场景;
    LinkedList 适用于要头尾操作或插入指定位置的场景;
    Vector 适用于要线程安全的ArrayList的场景;
    Stack 适用于线程安全的LIFO场景;
    HashSet 适用于对排序没有要求的非重复元素的存放;
    TreeSet 适用于要排序的非重复元素的存放;
    HashMap 适用于大部分key-value的存取场景;
    TreeMap 适用于需排序存放的key-value场景。

  • 相关阅读:
    Spring MVC Ajax 嵌套表单数据的提交
    Spring MVC 过滤静态资源访问
    Spring MVC 页面跳转时传递参数
    IDEA Maven 三层架构 2、运行 springMVC
    IDEA Maven 三层架构 1、基本的Archetype 搭建
    EasyUI DataGrid 基于 Ajax 自定义取值(loadData)
    Spring MVC Ajax 复杂参数的批量传递
    Mybatis Sql片段的应用
    在 Tomcat 8 部署多端口项目
    自动升级的设计思路与实现
  • 原文地址:https://www.cnblogs.com/linjiqin/p/3107785.html
Copyright © 2020-2023  润新知