合并和拆分map,合并和拆分list,应用于把表格的两行并排显示

合并两个map:

eg1.

public static void main(String args[])
  {
   Map<String, Object>  map =new HashMap<String, Object>();
   Map<String, Object>  map1 =new HashMap<String, Object>();
   
   map.put("1",new Integer(1));
   map.put("2", new Integer(2));
   map1.put("3", new Integer(3));
   map1.put("4", new Integer(4));
   map.putAll(map1);
   System.out.println(map1);
   
   System.out.println(map);
  }

结果是:

{3=3, 4=4}

{3=3, 2=2, 1=1, 4=4}

eg2

HashMap map=new HashMap(); 
map.put("1", "A"); 
HashMap map1 = new HashMap(); 
map1.put("2", "B"); 
map1.put("3", "C"); 
map.putAll(map1); 
  System.out.println(map); 

打印结果: 
{3=C, 2=B, 1=A} 
如果是如下: 
HashMap map=new HashMap(); 
map.put("1", "A"); 
HashMap map1 = new HashMap(); 
map1.put("2", "B"); 
map1.put("1", "C"); 
map.putAll(map1); 
System.out.println(map); 
打印结果: 
{2=B, 1=C} 

所以说用putAll就可以合并两个MAP,只不过如果有相同的key那么用后面的覆盖前面的



像下面水位这样的表,循环一排显示两个数据的:原理还是一排显示一个数据,”只不过这个数据里有两个数据



  controller里:

//全部测站点实时数据
@RequestMapping(value = "thereal")
public ModelAndView thereal(
@RequestParam(value = "stcd", required = false, defaultValue = "") String stcd,
@RequestParam(value = "pageIndex", required = false, defaultValue = "0") Integer pageIndex,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize,
HttpServletRequest request, HttpServletResponse response) throws IOException {

String urlwater="http://192.168.1.15:8080/pingshan-service/data/Query1?sttp=ZZ";
String datawater=result(urlwater);
int indexdaowater=datawater.indexOf("{");
String resultdaowater=datawater.substring(indexdaowater);
String resultdaowater2=resultdaowater.replace(")","");
// 得到一个json对象
JSONObject jsObjwater = JSONObject.fromObject(resultdaowater2);

JSONArray jsonArraywater = jsObjwater.getJSONArray("data");
List<Map<String, Object>> listwater =new ArrayList();

List<Map<String, Object>> listwater1 =new ArrayList();
List<Map<String, Object>> listwater2 =new ArrayList();
List<Map<String, Object>> listwaters =new ArrayList();
//拆分json并把它分为两个list
for(int i=0;i<jsonArraywater.size();i++){
    JSONObject jobj =  (JSONObject) jsonArraywater.get(i);
    Map mapwater3 = new HashMap();
if(i%2==0){ //把奇数个归为一类
Map mapwater11 = new HashMap();
    String stcd1 = (String) jobj.get("stcd");
    String tm1 = (String) jobj.get("tm");
    Double z1 = (Double) jobj.get("z");
    String stnm1 = (String) jobj.get("stnm");
    mapwater11.put("stcd1", stcd1);
    mapwater11.put("tm1", tm1);
    mapwater11.put("z1", z1);
    mapwater11.put("stnm1", stnm1);  
 
    listwater1.add(mapwater11);
}else { //把偶数个归为一类
Map mapwater21 = new HashMap();
String stcd2 = (String) jobj.get("stcd");System.out.println(i+"stcd2:"+stcd2);
    String tm2 = (String) jobj.get("tm");
    Double z2 = (Double) jobj.get("z");
    String stnm2 = (String) jobj.get("stnm");
    mapwater21.put("stcd2", stcd2);
    mapwater21.put("tm2", tm2);
    mapwater21.put("z2", z2);
    mapwater21.put("stnm2", stnm2); 
  
    listwater2.add(mapwater21);
}
}
//判断奇偶,把两个list通过map合并为一个list
if (jsonArraywater.size() % 2 == 0) { //为偶数时

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值