哈希表、有序表和比较器的用法
前置知识:无
提醒:讲解虽然用的java语言,但是任何语言都有对等的概念
提醒:后续有专门的章节来详解哈希函数、有序表,这节课就是常规用法展示
哈希表的用法(认为是集合,根据值来做key 或者 根据内存地址做key)
HashSet和HashMap原理一样,有无伴随数据的区别
增、删、改、查时间为O(1),但是大常数
所以当key的范围是固定的、可控的情况下,可以用数组结构替代哈希表结构
注意:
Java中通过自定义hashCode、equals等方法
任何类都可以实现“根据值做key”或者“根据内存地址做key”的需求
但是这里不再展开,因为在算法学习这个范畴内,这些并不重要,还有其他语言的同学也不关心这些
笔试、面试、比赛也都不会用到,课上只说对算法学习重要的内容
左程云