{date=2020-03-19, dtid=34,35,36, da=1,1,2}
这个类型的数据怎么转换为
date=2020-03-19{
{
dtid=34,
da=1
},
{
dtid=35,
da=1
},
{
dtid=36,
da=2
}
}
https://www.cnblogs.com/zhainan-blog/p/12009523.html
首先,以 date 为新的结果的 key ,然后,以 dtid 和 da 一一对应,形成一个新的数据类型,作为 Map 的值,值类型为 List 。
参考代码:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DataInfo {
private String dtid ;
private String da ;
public DataInfo(String dtid, String da) {
super();
this.dtid = dtid;
this.da = da;
}
public String getDtid() {
return dtid;
}
public void setDtid(String dtid) {
this.dtid = dtid;
}
public String getDa() {
return da;
}
public void setDa(String da) {
this.da = da;
}
@Override
public String toString() {
return "DataInfo [dtid=" + dtid + ", da=" + da + "]";
}
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
map.put("date","2020-03-19");
map.put("dtid","34,35,36");
map.put("da","1,1,2");
String date = map.get("date");
String dtid = map.get("dtid");
String da = map.get("da");
String[] split1 = dtid.split(",");
String[] split2 = da.split(",");
if(split1.length != split2.length) {
System.out.println("bad data.");
}else {
Map<String,List<DataInfo>> lastResult = new HashMap<String,List<DataInfo>>();
List<DataInfo> datas = new ArrayList<DataInfo>();
lastResult.put(date, datas);
for(int i=0;i<split1.length;i++) {
DataInfo temp = new DataInfo(split1[i],split2[i]);
datas.add(temp);
}
System.out.println(date+","+lastResult.get(date));
}
}
}