搜索相关及Hashmap

    技术2025-06-13  18

    一、搜索

    1.什么是搜索? 从一个数据集合中,找出特定的一个或多个数据的过程

    2.搜索场景面临的问题是什么?

    尽可能快的查到结果数据集合需要适应变化(数据集合中的数据可能实时变化着)

    3.搜索中存在的模型;

    纯Key模型,只需要判断一个Key在不在这个集合中———SetKey—Value模型,每个唯一的Key都关联着一个Value——Map

    4.设计专门的数据结构 OR 算法来解决搜索问题(查找)问题 分情况:

    如果数据集不变(或者变化情况很少) 最常见的算法:二分算法——条件(数据中key是有序的) 查找:O(log(n)) 插入:O(n) 删除:O(n)更常见的情况是,我们不但要追求查找效率,也要追求 插入/删除效率。在这个追求中间取一个中庸值 更多的两种数据结构:哈希表、平衡搜索树

    二、HashMap/HashSet和它们背后的哈希表

    1.哈希表背后的机制? 利用了现代内存的随机访问是O(1)这一特性——数组根据下标访问是O(1)的 把一个大数据集查找的问题转化为多个小数据集的查找问题

    2. 3.遇到冲突的解决办法

    开放地址法链地址法

    三、

    1. 2. 3. 4. 5. 6. 7. 8.==和equals和hashCode的区别

    ==是运算符,用于比较两个变量是否相等。equals,是Objec类的方法,用于比较两个对象是否相等,默认Object类的equals方法是比较两个对象的地址,跟==的结果一样。hashCode也是Object类的一个方法。返回一个离散的int型整数。在集合类操作中使用,为了提高查询速度。(HashMap,HashSet等)

    9. 10.

    Processed: 0.011, SQL: 9