zoukankan      html  css  js  c++  java
  • Java----------->集合类

     集合类

    集合类的分类:List ,Set,Queue(属于Collection接口),Map(属于Map接口)

    Collection接口的框架结构:

    Map接口的框架结构:

    Set集合类:(为保证多线程安全,需要用Collections.synchronizedSortedSet(new SeTreet) 包装该类)

    1,HashSet集合类:(本质是HashMap的key值,注意其HashCode和equals方法,详情可参考:):快的原因通过哈希算法直接算出存储值得位置。

           

    2,LinkedHashSet集合类:存储顺序与添加顺序一致,所以为了维护链表的插入,其性能有所降低,不如HashSet

    3,TreeSet集合类:通过SortedSet类实现,即排好了顺序,使用排序算法:自然排序(红黑树结构排序

    4,EnumSet集合类:为枚举而设立的(是Set集合中最好的)

    2,List集合类

    ArrayList与Vector区别:前者是线程不安全的,需要代码保证,而后者线程安全的,但不推荐使用它。

    LikedList:实现了Deque接口,可以当作队列,栈,双端队列来使用

    3,Queue集合类:

    1,PiorityQueue:不是按先进先出的顺序输出,而是按元素的升序来输出,不允许null

    2,Deque:双端队列,使用ArrayDeque既可以当作队列使用,也可以表示栈操作(push入栈,pop出栈)

    4.Map集合类:

    1,HashMap和HashTable的区别

     

    Hashtable使用Enumeration,HashMap使用Iterator。Iterator其实与Enmeration功能上很相似,只是多了删除的功能。

    Hash值使用不同:Hashtable直接使用hashCode;HashMap通过重新计算hash值来使用。

    2,LinkedHashMap:实现了双端队列

    3,WeakHashMap:针对弱引用,即key值为匿名,包装引用时为弱引用。

    4,IdentityHashMap:只有当a==b严格相等时才不允许插入,而HashMap是a.equals(b);

    5,EnumMap:key必须是枚举类型(Map中性能最好)

    map循环遍历:

    Map<Integer,String> map=new HashMap<>();
            map.put(1,"na");
            map.put(2,"na");
            map.put(3,"na");
            map.put(4,"na");
            for(Map.Entry<Integer,String> entry:map.entrySet()){//在数据量多的时候推荐
                System.out.println(entry.getKey()+"	"+entry.getValue());
            }

    (二),操作集合的工具类------Collections

    1,排序操作:

       

     2,查找,替换等操作:

        

    3,同步控制操作:

          Collections.synchronizedSet()----------Collections.synchronizedList()----------------Collections.synchronizedMap()

  • 相关阅读:
    CF 256C Furlo and Rublo and Game【博弈论,SG函数】
    opengl笔记——OpenGL好资料备忘
    SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑
    ORACLE数据库对比表结构
    SSRS Reports 2008性能优化案例二
    Linux LVM学习总结——扩展卷组VG
    MySQL备份还原——AutoMySQLBackup介绍
    mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' when using LOCK TABLES
    MySQL备份还原——mysqldump工具介绍
    ORACLE查看数据文件包含哪些对象
  • 原文地址:https://www.cnblogs.com/ksWorld/p/6749672.html
Copyright © 2011-2022 走看看