zoukankan      html  css  js  c++  java
  • 集合框架(总结)

    集合框架:

    Collection(单列集合)

    |------List(有序,可重复)

    |------------ArrayList(数组,查询快,增删慢,不安全,效率高)

    |------------Vector(数组,查询快,增删慢,安全,效率低)

    |------------LinkedList(链表,查询慢,增删快,不安全,效率高)

    |------Set(无序,且唯一)

    |------------HashSet(哈希表,依赖hashCode()和equals())

                     执行顺序:首先判断hashCode()值是否相同

                           是:继续执行equals(),看其返回值是true,说明元素重复,不添加

                                                              false,就直接添加到集合。

                           否:就直接添加到集合。

                           自动生成hashCode()和equals()即可。

    |-----------------------LinkedHashSet(链表和哈希表,链表保证有序,哈希表保证唯一)

    |------------TreeSet(红黑树)

             如何保证元素唯一性呢?

                         根据比较的返回值是否是0来决定。

             如何保证元素的排序呢?

               两种方式:

                  自然排序(元素具备比较性)让元素所属的类实现Comparable接口。  

                  比较器排序(集合具备比较性)让集合接收一个Comparator实现类对象。

    Map(双列集合)

       1:Map集合的数据结构仅仅针对键有效,与值无关。

       2:存储的是键值对形式的元素,键唯一,值可重复。

    |------HashMap(哈希表,不安全,效率高)  --> 同HashSet

    |--------------LinkedHashMap  --> 同LinkedHashSet

    |------Hashtable(哈希表,安全,效率低)  --> 同HashMap

    |------TreeMap  --> 同TreeSet

    如何选择使用哪种集合?

    看具体需求!

      是否是键值对形式?

    |--------是:Map

          键是否需要排序?

    |----------------是:TreeMap

    |----------------否:HashMap

          不知道,就选择HashMap。

    |--------否:Collection

          要安全吗?

    |----------------是:Vector

    |----------------否:ArrayList或LinkedList

              增删多:LinkedList

              查询多:ArrayList

            不知道,就选择ArrayList

    集合常见方法及遍历方式:

    Collection:

    • add()
    • remove()
    • contains()
    • iterator()
    • size()

      遍历:

        增强for

        迭代器

        |--List

          get()

          遍历:普通for

        |--Set

    Map:

    • put()
    • remove()
    • containKey(),containsValue()
    • keySet()
    • get()
    • value()
    • entrySet()
    • size()

      遍历:

        根据键找值

        根据键值对对象分别找键和值

    ArrList,LinkedList,HashSet,HashMap(掌握)

      存储字符串和自定义对象数据并遍历。

    集合的嵌套遍历(理解)

  • 相关阅读:
    org.hibernate.HibernateException: Could not obtain transactionsynchronized Session for current thread
    ajax上传文件
    iphone 图层操作
    什么是OAuth授权
    UIWebView得到加载页的title
    转iphone 动画实现方法
    c#字符串转datatime时,因操作系统不一致产生的问题解决方法
    Bold font in IPhone UILabel
    五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
    包含iphone4在内的icon,default及图片处理方法
  • 原文地址:https://www.cnblogs.com/crazypokerk/p/9079127.html
Copyright © 2011-2022 走看看