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(掌握)

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

    集合的嵌套遍历(理解)

  • 相关阅读:
    Jmeter 04 JMeter 负载与监听
    《Python 机器学习》笔记(四)
    《动手学深度学习(李沐)》笔记3
    《动手学深度学习(李沐)》笔记2
    《动手学深度学习(李沐)》笔记1
    Latex排版全解(转)
    《Python机器学习》笔记(三)
    《数据挖掘导论》笔记(四)
    Latex技巧:在图表序号中加入章节号(实现诸如“图1.1.2”这样的图表序号)
    Latex技巧:插入参考文献
  • 原文地址:https://www.cnblogs.com/crazypokerk/p/9079127.html
Copyright © 2011-2022 走看看