错误案例
当我们需要从一些会员中查找指定的会员,并且根据这个会员的属性做些操作。或者类似的数据筛选情况下。例如:
List<Person> results = searchResultList();//此时查询出的结果是1000,并且每个对象比较大
String [] names = {"gary","lily","frank","red"}
for(int j=0;j< names.length;j++){
String name= names [j];
for(int i=0;i< results.size(); i++){
Person person = results.get(i);
if(StringUtil.equals(person.name, name)){
//do somthing
}
}
}
错误分析
查询条件的不确定性导致查询的结果可能很大,数量很多,如果再用嵌套式的循环,很可能产生性能的浪费,甚至导致内存的泄漏。
正确用法
//此时查询出的结果是1000,并且每个对象比较大
List<Person> results = searchResultList();
HashMap hp = HashMap();
for(int i = 0; i < results.size(); i++){
Person person = results.get(i);
hp.put(person.name, person);
}
String [] names = {"gary", "lily", "frank", "red"}
for(int i=0; i< names.length; i++){
String name = names [i];
if(hp.containsKey(name)){
//do somthing
}
}
最差效率 Results集合 Names集合 找到目标对象的循环次数
双循环 N*N 1000 500 500000
HASH算法方式 1*N 1000 500 500
通过以上表格的数据分析可知:采用HASH算法方式来替代循环查找的方式很大程度上将带来效率提升。
分享到:
相关推荐
所谓查找(Search)又称检索,就是在一个数据...查找算法的效率高低直接关系到应用系统的性能。本次实验是在折半查找的代码基础上,实现插值查找和斐波那契查找,并比较不同的数据这三种方法的查找效率,得出初步结论。
高性能无冲突分组查找分类算法的研究.pdf
基于分组TCAM的T比特高性能路由器快速查找更新技术.pdf
1.掌握顺序查找、折半查找及二叉排序树上查找的基本思想和算法实现,了解怎样对各种查找方法进行时间性能(平均查找长度)分析。 2.掌握各种排序方法的基本思想、排序过程、算法实现,能进行时间和空间性能的分析...
正如名称中的Mem所示,所有数据都建构在内存中,保证了系统的高性能,同时使用块链进行内存压缩,使用redo-log技术保证数据的持久化。此外,Memlink还支持主从复制、读写分离、数据项过滤操作等功能。 特点: •...
查找时可改变数据元素之间的关系以获得较高的查找性能,将查找集合组织成表、树结构。也即是从数据的存储方式作出改进。 还有从算法层面做出改进:二分、插值、斐波那契查找等 顺序查找:线性查找,从表的第一个逐个...
图像自适应3DLUT 学习自适应图像的3D查找表以实时实现高性能照片增强资料下载,,数据集([ ],[ :5fyk]),[PCT专利] 本文使用的整个数据集超过300G。 在这里,我只提供了大小调整为480p的FiveK数据集(包括8位...
ACEX系列是Altera公司于2000年提供的一种高性能、低功耗的高密度器件,它综合了查找表结构与EABs。其中,基于LUT的逻辑功能优化了数据通道和寄存器的性能与效率,而EAB则能实现RAM、ROM、双口RAM、FIFO等各种存储器...
2.根据总条数,随机1次,1次性取出20条记录(当然这个就相当于分页了,要求不高的话,这个最快,我用的就是这个); 还有一种方法,随机20次,重复执行20次。 例如: $sum=800000;//得到总条数 /
基于Bitmap数据结构的数据压缩技术是一种针对线性存储结构的有效压缩方法...Bitmap技术是一种能有效改善网络处理算法存储空间性能的通用技术,并给未来高性能网络处理算法设计提出以及现有算法的改进都提供了启发思路。
Mysql_如何进行性能优化教程 数据索引通常默认采用btree索引,(内存表... 在极端情况下(比如数据查询需求量非常大,而数据更新需求极少,实时性要求不高,数据规模有限),直接使用单一排序序列,折半查找速度最快。
C语言课程设计报告-基于哈希表的二叉树优化,利用哈希表的查找性能优化二叉树的操作(比平衡二叉树性能更高),需要的小伙伴私信我,直接发链接给你。不用在CSDN上下载哈(你有VIP的话当我没说)。课程中不仅仅设计...
将大型数据加载到前端应用程序并直观查询此类数据的高性能方法。 在实时查看 最终,Pagespeed Insights将提供有关真实用户体验应用程序的现场数据的帮助,但以下是应用程序运行时性能的快照,该快照是通过模拟节流...
掌握这些数据结构的特点、优缺点以及适用场景,对于编写高质量的代码至关重要。例如,当需要快速插入和删除操作时,链表比数组更加高效;当需要快速随机访问时,数组比链表更加高效。树和图这样的数据结构在处理层次数据...
该方法引入基于散列函数的字典查找方式和删除当前未被引用词条的字典更新方式提高字典压缩效率,并通过优化算法和传统算法的比较以及仿真,验证了算法的优越性。测试结果表明,该优化方法整体上提高了系统的压缩性能...
一个用于查找发动机数据以设计微型喷气发动机的应用程序。 该应用专注于MJE型径向压缩机。 发动机数据,例如推力,空气质量流量,外排温度(EGT)和速度(Cj),扩压器直径,扩压器叶片角度,tsfc以及12 km高度的...
本章结尾处介绍了衡量书中讨论的数据结构与算法性能的方法。 第2章提供了数组构造方法的回顾,并连同示例说明了Array类的特征。Array类把许多与数组相关的函数(UBound函数、LBound函数等等)封装到单独一个包中。...
C 数据库支持远程访问重连及数据断点续传功能,使数据库之间的数据同步及完整性具有 了高可靠性的保障。 D 软件应内置的实时数据库支持无限分层和扩展并支持中英文的标签配置,可以按照"工厂 数据模型"来管理整个...
掌握线性表的基本操作(插入、删除、查找)以及线性表合并等运算在顺序存储结构、链式存储结构上的实现。重点掌握链式存储结构实现的各种操作。 掌握线性表的链式存储结构的应用。 (1)描述你在进行实现时,主要的...
高性能的文本索引数据仓库生成机制 多维多方向的数据检索和排序 关键字、分类、地区多向检索技术,最彻底的挖掘互联网情报 搜索热门、相关性关键字,人工推荐关键字综合展现 最先进的中文分词技术 8. 简单易用...