java基础:13.9 集合框架 - 总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/L20902/article/details/88877690

线性表List

  1. 可以有重复元素。
  2. ArrayList 中数据存放的位置和我们添加数据的前后顺序一样。
  3. 如果需要通过下标随机访问元素,而不会在线性表起始位置插入或删除元素,那么ArrayList提供了最高效率的合集。如果需要在线性表的起始位置插入或删除元素,就应该选择LinkedList类。
  4. 除了包含用于访问和修改向量的同步方法之外,Vector类和ArrayList类是一样的。如果不需要同步,使用ArrayList比使用Vector效率更高。
  5. ArrayList ---- vs-------- LinkedList
    ArrayList
    1.插入/删除数据速度慢。因为要把插入点后所有对象移位。
    2.顺序结构,可直接定位到某个位置的对象,定位速度快。
    LinkedList
    1.插入,删除数据快。只要断开插入点的连接,重新连接到别的块就OK。
    2.链表结构,不可以直接定位到某个位置的对象,必须根据链表的方向一个一个找,定位速度慢。

 
集合set

  1. 集合(set)是一个用于存储和处理无重复元素的高效数据结构。
  2. 集合的三个具体类:HashSet、LinkedHashSet、TreeSet。
  3. 在测试一个元素是否在集合或者线性表中时,集合比线性表更加高效。
  4. HastSet 中数据存放的位置和添加顺序无关,和HashCode有关。
  5. HashSet: 无序
    LinkedHashSet: 按照插入顺序
    TreeSet: 从小到大排序

 
 

映射表Map

  1. 映射表(map)类似于目录,提供了使用键值快速查询和获取值得功能。不能有相同的键,每个键可以映射最多一个值。
  2. 可以使用三个具体的类来创建一个映射表:HashMap、LinkedHashMap和TreeMap。
  3. 对于定位一个值、插入一个条目以及删除一个条目而言,HashMap类是高效的。
  4. TreeMap 类在遍历排好顺序的键时是很高效的。
  5. HashMap中条目的顺序是随机的,没有顺序;
    LinkedHashMap 支持映射表中的条目排序,条目可以按某种顺序(插入顺序、访问顺序)来获取
    TreeMap中的条目是按键的升序排列的。
  6. HashMap 可以存放 null,不是线程安全的类
    Hashtable 不能存放null,是线程安全的类

猜你喜欢

转载自blog.csdn.net/L20902/article/details/88877690