zoukankan      html  css  js  c++  java
  • 容器

    1、Queue继承自Collection,所以Queue不是传统的先进先出的队列,能够进行add和remove等操作。

         LinkedList实现了DQueue接口,Dqueue接口继承自Queue,所以LinkedList实际上是一个双向队列。

         PriorityQueue是Queue的实现类,内部采取的是极大堆。

         BlockingQueue

    2、Set

       HashSet内部实际上是一个HashMap<K,Object> map。Set实际上是HashMap的keySet()。其Iterator是调用map.keySet().Iterator()来得到的。所以HashSet完全依赖的是HashMap。

    3、HashMap的迭代器的遍历顺序是先遍历bucket为0的链表,然后再遍历bucket为1的链表,依次下去。

        Map.Entry keySet()返回的是一个AbstractSet的子类(HashMap的内部类),其Iterator继承自HashIterator。因为keySet()返回的是HashMap的内部类,所以对keySet()返回的set进行remove操作的时候是会改变

                                     HashMap的数据的,也就是删除了HashMap的一个key。add不能使用,否则抛不支持异常。

                                    返回的set的操作实际上是根据迭代器进行操作的。

       Collection values()也一样,返回的是AbstractCollection的子类。其Iterator也是继承自HashIterator。所以其遍历顺序也是和HashMap的遍历顺序一样。同样,remove操作也会删除HashMap的数据。但是不能使用

                              add(),否则会报不支持异常。

                                        返回的collection实际上根据迭代器进行操作的。

    4、只要是需要比较大小的,不能放null。如PriorityQueue,TreeSet等

       

                           

  • 相关阅读:
    数据访问类
    批量删除与查询
    CRUD
    数据访问与全局变量
    设计模式
    加载类
    PDO数据访问抽象层(上)
    PDO数据访问抽象层(下)
    会话控制
    php租房题目
  • 原文地址:https://www.cnblogs.com/YDDMAX/p/5237849.html
Copyright © 2011-2022 走看看