gpt4 book ai didi

java - 什么时候 select 比 for 快?

转载 作者:搜寻专家 更新时间:2023-11-01 02:08:01 28 4
gpt4 key购买 nike

想象一下这种情况,我有一个实体的 ID,并且有一个喜欢的列表,其中包含一些同类实体。要找到实体,什么时候在链表中执行 for 或在数据库中执行选择更快?

我的意思是,例如,当我在链表中​​有大约 5 个实体时,我想 for 会更快,而当我有数百万个实体时,select 会更快。

但是当 select 开始比 for 快时?

最佳答案

内存中的数据结构总是比打开套接字、运行查询和发回响应更快。

一个好的查询可能会在 10-100 毫秒内运行,而一个 Java 操作可能需要 100 纳秒。

使用 LinkedList 可能不会产生最佳性能。类似于使用数据库索引,您可以改用 HashMap,并通过其 id 映射实体:

Map<Long, Entity> idEntityMap = new HashMap<>;
idEntityMap.put(entity.getId(), entity);

因此,当您搜索一个实体时,您只需运行:

Entity entity = idEntityMap.get(entityId);

该调用将首先识别实体所在的 Map 存储桶,并且只对该存储桶中包含的实体进行对象比较。

总而言之,内存操作非常快,但您需要使用适合您用例的数据结构。

关于java - 什么时候 select 比 for 快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26346955/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com