哈希表(无序表)的简单介绍
1)hash表时间复杂度为常数O(1),增(put)、删(remove)、改(put)、查(get)
2)哈希表使用层面上理解为一种集合结构,只有key,用HashSet结构;
有key又有value,用HashMap
3)放入哈希表的东西,如果是基础类型,内部按值传递,内存占用就是这个东西的额大小。
4)放入哈希表的东西,如果不是基础类型,内部按引用传递,内存占用是这个东西的内存地址的大小
有序表的介绍
1)哈希表使用层面上理解为一种集合结构,只有key,用TreeSet结构;有key又有value,用TreeMap
2)有序表和哈希表的区别是,有序表把key按照顺序组织起来,哈希表不组织
3)红黑树、AVL树、跳表等都属于有序表结构。
3)放入有序表的东西,如果是基础类型,内部按值传递,内存占用就是这个东西的额大小。
4)放入有序表的东西,如果不是基础类型,必须提供比较器,内部按引用传递,内存占用是这个东西的内存地址的大小
5)不管是什么底层实现,只要是有序表,都有以下固定的功能和时间复杂度
面试时链表解题:
1)对于笔试,一切为了时间复杂度
2)对于面试,时间复杂度第一,空间第二
重要技巧:
1)额外数据结构记录(哈希表等)
2)快慢指针