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等

       

                           

  • 相关阅读:
    windows 的文件夹映射实现
    项目管理工具
    SSM(Spring+SpringMVC+MyBatis)高并发优化思路
    高性能高可用高并发技术架构的一些理解
    你懂什么是分布式系统吗?Redis分布式锁都不会?
    使用批处理文件(*.bat)同时打多个cmd窗口
    mysql删除重复数据只保留一条
    native2ascii命令
    利用编辑距离(Edit Distance)计算两个字符串的相似度
    eclipse如何正确部署tomcat7
  • 原文地址:https://www.cnblogs.com/YDDMAX/p/5237849.html
Copyright © 2011-2022 走看看