遍历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>?

map里面放的list,list放的是对象,怎么遍历

freemarker 遍历map 对象

Map排序和遍历

jsp页面如何对map集合遍历

我有两个list,list里面放的是map,我现在需要遍历这两个list,将里面存放的map中key相等的value值相加