zoukankan      html  css  js  c++  java
  • java集合总结

    1.java集合主要有2个根接口分别是Collection和map

    Collection 接口主要有3个子接口
    Set:无序集合元素不可以重复。
    Queue队列
    List:有序集合元素可以重复。

    -------------------Set-----------------

    Set包括HashSet,TreeSet,EnumSet
    HashSet特点:
    1.不能保证元素排列顺序,顺序可能发生变化。
    2.不是同步的,多个线程同时修改HashSet集合时,会出现线程安全问题。
    3.值可以为Null。
    HashSet集合判断2个元素相等的标准是2个对象通过equals()方法比较相等并且2个对象的hashCode()方法返回值也相等。

    LinkedHashSet特点:
    会按照元素的添加顺序来访问集合元素,因为需要维护元素插入顺序所以性能比HashSet差。

    TreeSet特点:
    会根据元素实际值大小来进行排序。分为自然排序和定制排序2种。
    EnumSet是专为枚举类设计的集合类

    性能分析:
    HashSet性能总比TreeSet好(特别是常用的添加,查询操作),因为TreeSet需要维护元素的次序。
    EnumSet是性能最好的,但是他只能保存同一个枚举类的枚举值。
    他们都是线程不安全的。可以通过Collections来同步保证同步。

    -------------------List-----------------
    List包括ArrayList和Vector实现类
    1.ArrayList是线程不安全的,Vector是线程安全的。
    2.Vector性能比ArrayList好。

    ------------------Queue-----------------

    -----------------Map--------------------
    Map主要包括HashMap和Hashtable,EnumMap,LinkdeHashMap
    HashMap与Hashtable区别:
    1.Hashtable是线程安全的,HashMap是线程不安全的,所以HashMap性能理高一点。
    2.Hashtable的key和值不可以为null,HashMap允许有一个key为NUll,多个value值为null;

  • 相关阅读:
    0039. Combination Sum (M)
    imei和imsi
    APP网络测试要点和弱网模拟
    Git常用命令
    HTTP host头
    与apk签名有关的那些概念与命令
    你应该知道的运维术语
    nginx、fastCGI、php-fpm关系梳理
    adb连接手机报错解决方案汇总(win7)
    Android DVM
  • 原文地址:https://www.cnblogs.com/dsking/p/5261091.html
Copyright © 2011-2022 走看看