logologo

Map

Aug 20, 2023

哈希表

  1. 哈希表在使用层面上可以理解为一种集合结构;
  2. 只有 Key,没有伴随数据 Value,可以使用 HashSet 结构;
  3. 既有 Key,又有伴随数据 Value,可以使用 HashMap 结构;
  4. 使用哈希表增(Put)、删(Remove)、改(Put)、查(Get)的操作,可以认为时间复杂度 O(1),但常数时间比较大;
  5. 放入哈希表的东西,如果是基础类型,内部按值传递,内存占用是这个东西的大小;
  6. 放入哈希表的东西,如果不是基础类型,内部按引用传递,内存占用是 8 字节;

有序表

  1. 有序表在使用层面上可以理解为一种集合结构:
  2. 只有 Key,没有伴随数据 Value,可以使用 TreeSet 结构;
  3. 既有 Key,又有伴随数据 Value,可以使用 TreeMap 结构;
  4. 有序表把 Key 按照顺序组织起来,而哈希表完全不组织;
  5. 红黑树、AVL 树、size-balance-tree 和跳表等属于有序表结构,只是底层具体实现不同;
  6. 放入如果是基础类型,内部按值传递,内春占用是这个东西的大小;
  7. 放入如果是不是基础类型,内部按引用传递,内存占用是 8 字节
  8. 有序表在使用时,比哈希表功能多,时问复杂度都是 O(logN)

浙ICP备2021022773号    2022-PRESENT © ZhengKe