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

    java集合类关系图如下图所示:

    collection中包括了List和Set,map是另一个抽象类。
    • 如何遍历Collection中的每一个元素?
    不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:
        Iterator it = collection.iterator(); // 获得一个迭代子
        while(it.hasNext()) {
          Object obj = it.next(); // 得到下一个元素
        }
    • list接口
               实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
             LinkedeList:双向链表实现的,具有链表的优点。扩容容易。允许null元素。提供在头部尾部添加数据的方法,适合实现栈和队列。注意:不提供同步的方法,线程不安全。
             ArrayList:类似数组实现,可变大小的数组,具有数组的优缺点(访问快,修改慢;不易扩容)。允许null。非同步,线程不安全。
             Vector:向量,非常类似ArrayList,但是是线程安全的。
             Stack:继承自Vector,实现了一个后进先出的栈。
    • set接口
              不包含重复元素的接口
    • Map接口
              Map没有继承Collection接口,Map提供key到value的映射。 
              Hashtable:Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。添加数据和取出数据的时间为常数。Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。load factor--负载容量。hashtable是同步的,线程安全的。
             HashMap:HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key。
             WeakHashMap:一种改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收。
             TreeMap: 使用红黑树的排序二叉树来保存Map中的每个Entry。每个Entry为红黑树的一个节点。所有的Entry总是根据key按指定的规则保持有序。
     
     
     
     
     
  • 相关阅读:
    [pyqt4]mark
    EPC摘抄
    sockaddr struct 类型重定义
    linux编译警告 will be initialized after
    cout如何输出十六进制
    strcpy unsigned char
    c语言格式控制符
    c++字节数组转换为整型
    C++如何判断大小端
    C++中关于位域的概念
  • 原文地址:https://www.cnblogs.com/lxq0309/p/3662491.html
Copyright © 2011-2022 走看看