JAVA 有一个list里存放的是map 如何获取map里某几个key和value效率最高

list里面有十万条, 每条里存放的是map,key分别是name,age,hobby。。。等等 ,如何获取每个list里面的map的name,age,hobby和对应value效率最高

十万条数据的话用entryset吧.

List> list = new ArrayList>();
for (Map s:list) {
System.out.println(s.entrySet());
}

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
                for (Map<String, Object> s:list) {
                    System.out.println(s.entrySet());
            }

首先,这个问题的解决办法:利用循环(这种是效率比较高的,还有三种是针对map遍历的,都差不多)
List list;
Map map;
for(i=0;i<list.size;i++){
map=list.get(i);
for (String key : map.keySet()){
System.out.println("key:"+key+",value:"+map.get(key) );
}
}

其次十万条记录为什么还放在list里面并且list里还放map,这本身就是个错误的思路,应该用数据库或者redis,特别好解决性能问题。

List> associationTBIdList = null;
for (Map associationTBIdMap : associationTBIdList) {
for (Entry entry : associationTBIdMap.entrySet()) {
entry.getKey(),
entry.getValue()
}
}
就这样 其实我就是想要点分 O(∩_∩)O哈哈~

List<Map<String, String>> list = new ArrayList<Map<String, String>>();
        for (Map<String, String> map : list) {
            for (Map.Entry<String, String> entry : map.entrySet()) {
                System.out.println(entry.getKey() + "   " + entry.getValue());
            }
        }

数据应该是从数据库中得来吧,若确定需要哪些字段,就只查出来哪些字段就好了,这样就避免了

10万条数据全部加载到内存中还是有点危险,容易导致内存溢出。一个地方用获取不会,多有几个这样的程序估计就够呛了。所以建议还是不要在这条思路上走太远,可以换个思路看是否可以解决问题。

for循环list,直接用key取Map