湛江市建设交易中心网站,广州效果图制作公司,百度公司招聘官网,做网站备案是承诺书在哪下载这篇文章主要介绍了java for循环map集合优化实现解析,文中通过示例代码介绍的非常详细#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在《for循环实战性能优化》中提出了五种提升for循环性能的优化策略#xff0c;这次我们在其中嵌套循环优化小…这篇文章主要介绍了java for循环map集合优化实现解析,文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在《for循环实战性能优化》中提出了五种提升for循环性能的优化策略这次我们在其中嵌套循环优化小循环驱动大循环的基础上借助map集合高效的查询性能来优化嵌套for循环。如果小循环和大循环的集合元素数量分别为m和n则双层for循环的循环次数是m*n随着m和n的增长对性能的影响越来越大。因此本文考虑进一步优化使得循环次数变为mn。利用下面的代码来模拟测试两种情况的性能import java.util.arraylist;import java.util.list;import java.util.map;import java.util.function.function;import java.util.stream.collectors;public class forupdate {public static void main(string[] args) {// for (int i 0; i 10000; i 10) {// loopgivennum(i);// }for (int i 10000; i 100000; i 10000) {loopgivennum(i);}system.out.println(----- done -----);}private static void loopgivennum(int i) {list smallloop getlooplist(i);list bigloop getlooplist(2 * i);long dobyfortimes dobyfor(bigloop, smallloop);long dobymaptimes dobymap(bigloop, smallloop);system.out.println(size i : dobyfortimes , dobymaptimes);}/*** 获取循环变量* param size 循环变量元素个数*/private static list getlooplist(int size) {list list new arraylist();for (int i 0; i size; i) {list.add(string.valueof(i));}return list;}private static long dobyfor(list bigloop, list smallloop) {long starttime system.currenttimemillis();for (string str1 : smallloop) {for (string str2 : bigloop) {if (str1.equals(str2)) {continue;}}}return system.currenttimemillis() - starttime;}/*** 使用 map 优化* param bigloop* param smallloop*/private static long dobymap(list bigloop, list smallloop) {long starttime system.currenttimemillis();// 转换成mapmap loopmap bigloop.stream().collect(collectors.tomap(k - k, function.identity()));system.out.println(loopmap.size());for (string str1 : smallloop) {if (loopmap.containskey(str1)) {continue;}}return system.currenttimemillis() - starttime;}}输出结果size 10000: 756,97size 20000: 3091,8size 30000: 4342,7size 40000: 8848,7size 50000: 16317,7size 60000: 31652,7size 70000: 37078,7由此可见数据量越大嵌套for循环执行时间越长而使用map后纵使数据量增长到了20w执行时间也维持在7ms左右。数据量小的时候执行结果就不再贴出来了。结论使用map优化后的方法执行的效率比嵌套循环提高了很多很多。以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持萬仟网。希望与广大网友互动点此进行留言吧