zoukankan      html  css  js  c++  java
  • 集合框架比较

    集合框架可以分为Collection和Map

    Collection

    • Set:元素不重复(底层是Map)
      • HashSet
        • 集合中元素可以为null,但只有一个元素为null
        • 基于HashMap实现的,底层是Hash表,不能保证元素排列顺序
        • 元素对象比较是否重复:先调用hashcode方法,再调用equals方法  
      • TreeSet 
        • 基于TreeMap实现的,底层是红黑树,不允许元素是null
        • 支持排序:自然排序——元素实现Comparable接口调用compareTo方法比较大小,定制排序——自定义比较器类实现Comparator接口调用compare方法比较元素大小 
    • List:元素有顺序(索引顺序)
      • ArrayList
        • 底层是数组,查询快(索引),增删慢
        • 线程不安全,效率较Vector高
      • Vector
        • 底层是数组,查询快(索引),增删慢
        • 线程安全(同步影响性能),效率较ArrayList低  
      • LinkedList
        • 底层是一组连接的记录,是链表,查询慢(需要遍历),增删快(修改前后节点即可)
        • 线程不安全

    Map(类比set)

    • HashMap
      • key和value可以为null,不安全 
    • TreeMap
    • Hashtable
      • key和value不能为null,安全 
    • Properties  

    ---------------------------------------------------------------------------------------------------------------------

    线程不同步的集合如何转换成线程同步的集合:

    • 方法一:Collections中的静态方法

    • 方法二:java.util.concurrent包下提供的同步集合容器

  • 相关阅读:
    工作态度
    SQL7.0有如下问题:视图字段未及时刷新
    遇到不讲交期的客户
    关于CashFiesta.com
    设置主机多IP技术失败
    已好的客户要建立VSS了
    MSSQL说日志已满
    特殊的四舍五入
    如何保证对帐不遗漏?
    Linux常用命令之其它类型命令汇总
  • 原文地址:https://www.cnblogs.com/qf123/p/8611445.html
Copyright © 2011-2022 走看看