List<Map<String, String>> 转 Map<String, List<String>>

将List转成Map结构,以下为没有水平的写法!

好久之前写的土方法转换,不知道有没有优秀的解法,还希望大家提供!

Map<String, String> map1 = new HashMap<String, String>();
map1.put("a", "1");
map1.put("b", "3");
map1.put("c", "5");

Map<String, String> map2 = new HashMap<String, String>();
map2.put("a", "2");
map2.put("b", "4");
map2.put("c", "6");

List<Map<String, String>> lm = new ArrayList<Map<String, String>>();
lm.add(map1);
lm.add(map2);

Map<String, List<String>> ml = new HashMap<String, List<String>>();
for (int i = 0; i < lm.size(); i++) {
	Map<String, String> m = lm.get(i);
	Iterator<Map.Entry<String, String>> it = m.entrySet().iterator();
	while (it.hasNext()) {
		Map.Entry<String, String> entry = it.next();
		List<String> al = ml.get(entry.getKey());
		if (al == null) {
			al = new ArrayList<String>();
		}
		al.add(entry.getValue());
		ml.put(entry.getKey(), al);
	}
}

System.out.println(ml);// {b=[3, 4], c=[5, 6], a=[1, 2]}

List<Map<String, String>> 转 Map<String, List<String>>

时间: 2024-11-08 10:15:52

List<Map<String, String>> 转 Map<String, List<String>>的相关文章

Map对象转换成Json格式的String字符串

1 //action处理页面发来的String,put到map转换成Json格式的String字符串 2 @RequestMapping("/seleteOaOrder") 3 @ResponseBody 4 public Object seleteOaOrder(String param){//param = "小明"; 5 System.out.println("+++++++++++++++++param:"+param); 6 if(pa

Map&lt;String,List&lt;String&gt;&gt;转为List&lt;Map&lt;String,String&gt;&gt;

/**  *   * @param map  输入  * @param list 输出  * @param idx     次序  * @param pathMap 已选  */ void map2List(Map<String, List<String>> map, List<Map<String, String>> list,                                     int idx, HashMap<String,S

SONObjetc和String Map Bean互转,JSONArray和String List互转

1 import java.util.ArrayList; 2 import java.util.HashMap; 3 import java.util.List; 4 import java.util.Map; 5 6 import com.alibaba.fastjson.JSONArray; 7 import com.alibaba.fastjson.JSONObject; 8 9 10 public class JSONParse { 11 12 public static void m

HDU 1247 Hat’s Words(map,STL,字符处理,string运用)

题目 用map写超便捷 也可以用字典树来写 我以前是用map的: #include<stdio.h> #include<string.h> #include<algorithm> #include<string> #include<math.h> #include <iostream> #include<map> using namespace std; string word[50010]; int main() { i

Mybatis进行id类型、String类型、map类型、ben类型参数传入Sql查询

用习惯了Hibernate,再换成Mybatis总会遇到一些变态问题,正如下面的错误提示,用mybatis查询时,传入一个字符串传参数,且进行判断时,会报 错误 There is no getter for property named 'moduleCode' in 'class java.lang.String Dao层调用方式 /* * Dao层查询 */ @Override public List<CityFace> findCityFaceByCondition(String eqD

Java 类型转换String,List,Map,Array

1. JsonString转为Map String jsoNStr = "{\n" + "\t\"TestArray\": [\"1\", \"2\", \"3\"]\n" + "}"; Map map = JSON.parseObject(jsoNStr,Map.class); 2.Object转为JsonArray(得保证obj是个Array数组,否则报错) Ob

java fastjson:Map与json以及JSONObject ,JSONObject与String互转

import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject ; import com.alibaba.fastjson.JSONPath; import com.jayway.jsonpath.Configuration; import com.jayway.jsonpath.JsonPath; import java.util.Ma

C++ string的那些坑,C++ string功能补充(类型互转,分割,合并,瘦身) ,c++ string的内存本质(简单明了的一个测试)

1. size_type find_first_of( const basic_string &str, size_type index = 0 ); 查找在字符串中第一个与str中的某个字符匹配的字符,返回它的位置.搜索从index开始,如果没找到就返回string::npos 2. string& replace (size_t pos, size_t len, const string& str); 从当前字符串的pos位置开始,长度为len的段落,替换成成str 3. in

C++命名空间和头文件的关系 例如已经使用了#include&lt;string&gt;,为什么还要 using std::string?

(1)如果C++程序中使用了带后缀".h"的头文件,那么不必在程序中声明命名空间,只需要文件中包含头文件即可:(2)C++标准要求系统提供的头文件不带后缀".h",但为了表示C++与C的头文件既有联系又有区别,C++中所用头文件不带后缀".h",而是在C语言的相应头文件名之前加上前缀c: (3)自定义的头文件通常带后缀“.h",系统标准库文件不带后缀“.h". (4)因为标准库非常的庞大,所程序员在选择的类的名称或函数名时就很

C++读写TXT文件中的string或者int型数据以及string流的用法

对文件的读写操作是我们在做项目时经常用到的,在网上看了很多博客,结合自身的项目经验总结了一下,因此写了这篇博客,有些地方可能直接从别的博客中复制过来,但是都会注明出处. 一.文件的输入输出 fstream提供了三个类,用来实现c++对文件的操作.(文件的创建.读.写). ifstream -- 从已有的文件读入 ofstream -- 向文件写内容 fstream - 打开文件供读写 文件打开模式: ios::in             只读 ios::out            只写 io