遍历list<map<,>> 与在数据库表中查找哪个效率高(在数据量相同的条件下)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遍历list<map<,>> 与在数据库表中查找哪个效率高(在数据量相同的条件下)相关的知识,希望对你有一定的参考价值。
参考技术A list<map<,>> 是在内存中, 而数据库的表格多半在硬盘上,所以当你的数据量可以都放在内存中的时候 list<map<,>> 会比较快。但,当数据量趋向无限大的时候, 数据库的效率会更高。
正确使用数据库的 index 以及正确的设计 ER, 会大大提高数据库的效率。
两者目的不同。追问
数据上亿条的 是数据库快些儿么 谢谢啦
追答都上亿啦,我估计你的原始数据是在 txt 文件里?
在讨论效率的时候,也应该考虑对文件的读写效率。
还是读出来想到数据库里吧。
其实 list> 是针对要在内存里进行处理的数据,而数据库是针对储存数据。
对于这么大的数据量,正确的做法是,设计ERD,将数据存于数据库。
设计程序(算法,数据结构之类的),这时候你可以用 list> 对从数据库提取的数据进行在内存的存储。
在使用数据库的时候需要考虑数据库的读写时间。
遍历map和list
遍历map
1.这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
2.在for-each循环中遍历keys或values。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//遍历map中的键
for (Integer key : map.keySet()) {
System.out.println("Key = " + key);
}
//遍历map中的值
for (Integer value : map.values()) {
System.out.println("Value = " + value);
}
3.用迭代器迭代
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<Integ 大专栏 遍历map和lister, Integer> entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
4.通过键找值遍历(效率低)
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Integer key : map.keySet()) {
Integer value = map.get(key);
System.out.println("Key = " + key + ", Value = " + value);
遍历list
1.超级for循环遍历
for(String attribute : list) {
System.out.println(attribute);
}
2.对于ArrayList来说速度比较快, 用for循环, 以size为条件遍历
for(int i = 0 ; i < list.size() ; i++) {
system.out.println(list.get(i));
}
3.用迭代器迭代
Iterator it = list.iterator();
while(it.hasNext()) {
System.ou.println(it.next);
}
以上是关于遍历list<map<,>> 与在数据库表中查找哪个效率高(在数据量相同的条件下)的主要内容,如果未能解决你的问题,请参考以下文章
怎么用Lambda遍历List<Map<String,Object>>得到Map<String,String>?
我有两个list,list里面放的是map,我现在需要遍历这两个list,将里面存放的map中key相等的value值相加