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

    集合体系

    Collection(单列)

    List(有序,可反复)

    ArrayList: 底层数据结构是数组,查询快。增删慢。线程不同步。效率高。


    LinkedList:底层数据结构是链表。查询慢。增删快。

    线程不同步,效率高。


    Vector: 底层数据结构是数组。查询快。增删慢。线程同步,效率低。

    Set(无序,唯一)

    HashSet:底层数据结构是哈希表。线程不同步。效率高。 怎么保证唯一性的呢?它依赖两个方法:hashCode()和equals()顺序:首先推断hashCode()值是否同样。

    同:继续走equals()。看返回值假设true:就不加入到集合。假设false:就加入到集合。不同:就加入到集合。

    TreeSet:底层数据结构是二叉树。

    线程不同步,效率高。

    怎么保证唯一性的呢?是依据返回是否是0。

    怎么保证排序的呢?两种方式

    一、自然排序(元素具备比較性) 实现Comparable接口

    二、比較器排序(集合具备比較性) 实现Comparator接口

    Map(双列 底层结构是针对键有效。跟值无关)

    HashMap:底层数据结构是哈希表。

    线程不同步,效率高。

    怎么保证唯一性的呢?

    它依赖两个方法:hashCode()和equals()顺序:首先推断hashCode()值是否同样。

    同:继续走equals(),看返回值假设true:就不加入到集合。假设false:就加入到集合。不同:就加入到集合。


    Hashtable:底层数据结构是哈希表。线程安全,效率低。

    怎么保证唯一性的呢?

    它依赖两个方法:hashCode()和equals()顺序:首先推断hashCode()值是否同样。同:继续走equals(),看返回值假设true:就不加入到集合。假设false:就加入到集合。不同:就加入到集合。


    TreeMap:底层数据结构是二叉树。线程不同步,效率高。

    怎么保证唯一性的呢?

    是依据返回是否是0。

    怎么保证排序的呢?

    两种方式自然排序(元素具备比較性)实现Comparable接口比較器排序(集合具备比較性)实现Comparator接口

    集合常见应用功能

    加入功能。推断功能,删除功能,获取功能,长度功能

    遍历方式
    List Set迭代器

    Iterator

    ListIterator

    Map迭代器

    有俩种选择一种去用就可以。

    (妻子找丈夫)键和值

    (结婚证找妻子丈夫)键和值映射关系

    Map的两种典型遍历方式:

    entrySet() 与 keySet()。

    entrySet的遍历方式要比keySet()高很多,由于欲取得相同的key-value对。keySet()相当于遍历了两次Map


    集合那么多什么时候该用谁?

    是否键值对?

    是:Map

    是否对键排序?

    是:TreeMap

    否:HashMap

    不懂的情况下。使用HashMap。

    否:Collection

    是否唯一?

    是:Set

    是否对元素进行排序?

    是:TreeSet

    是否须要有序?

    是:LinkedSet

    否:HashSet

    不懂的情况下,使用HashSet

    否:List

    是否要安全?

    是:Vector(真正开发中也不用)

    否:ArrayListLinkedList

    注意:查询多:ArrayList

    增删多:LinkedList

    不懂的情况下,使用ArrayList


  • 相关阅读:
    如何修改 WordPress 的默认 Gravatar 头像
    解决wordpress部分博客文章页面无法显示的问题
    git删除本地所有的更改
    C++ char数组和string类简单使用总结
    c++ 中关于int,unsigned int , short的关系与应用
    CentOS下,mysql服务启动失败
    通过日志动态查看正在执行的mysql语句
    mysql 处理数据库中的重复行
    Linux cp复制
    在myeclipse中使用查找功能
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7159768.html
Copyright © 2011-2022 走看看