JAVA项目实战,接口集合的数据形式的调整

/* 原数据   [{question=1.如何修改密码, answer=A:已绑定的有效手机可以进入个人中心修改, questiontype=1},
    {question=2.如何注销账号, answer=A:注销账号, questiontype=1}, 
    {question=3.如何切换账号, answer=A:切换账号的方法, questiontype=1}, 
    {question=1.阅点有无有效期, answer=A:永久不过期, questiontype=2}, 
    {question=2.阅点如何查询, answer=A:个人中心我的账户中即可查询, questiontype=2}, 
    {question=1.如何获取积分, answer=获取积分的方法, questiontype=3}, 
    {question=1.关于免费政策, answer=免费政策解读, questiontype=4}, 
    {question=1.怎么发表文章, answer=发表文章的犯法, questiontype=5}]


 处理后的数据  result=[{name=关于账号 , questiontype=1, value=[{question=1.如何修改密码, answer=A:已绑定的有效手机可以进入个人中心修改}, {question=2.如何注销账号, answer=A:注销账号}, {question=3.如何切换账号, answer=A:切换账号的方法}]}, 
   {name=关于资费  , questiontype=2, value=[{question=1.阅点有无有效期, answer=A:永久不过期}, {question=2.阅点如何查询, answer=A:个人中心我的账户中即可查询}]}, 
   {name=关于积分 , questiontype=3, value=[{question=1.如何获取积分, answer=获取积分的方法}]}, 
   {name=关于免费政策 , questiontype=4, value=[{question=1.关于免费政策, answer=免费政策解读}]}, 
   {name=其他问题, questiontype=5, value=[{question=1.怎么发表文章, answer=发表文章的犯法}]}]*/

方法一

package www.myListSort.com;



import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;


import www.listchuli.com.TestList;


public class MyListSortTest {
public static void main(String[] args){
Map<String,Object> mapResult11=new HashMap<String,Object>();
mapResult11.put("questiontype", 1);
mapResult11.put("question", "1.如何修改密码");
mapResult11.put("answer", "A:已绑定的有效手机可以进入个人中心修改");

Map<String,Object> mapResult12=new HashMap<String,Object>();
mapResult12.put("questiontype", 1);
mapResult12.put("question", "2.如何注销账号");
mapResult12.put("answer", "A:注销账号");

Map<String,Object> mapResult13=new HashMap<String,Object>();
mapResult13.put("questiontype", 1);
mapResult13.put("question", "3.如何切换账号");
mapResult13.put("answer", "A:切换账号的方法");

   Map<String,Object> mapResult21=new HashMap<String,Object>();
mapResult21.put("questiontype", 2);
mapResult21.put("question", "1.阅点有无有效期");
mapResult21.put("answer", "A:永久不过期");


Map<String,Object> mapResult22=new HashMap<String,Object>();
mapResult22.put("questiontype", 2);
mapResult22.put("question", "2.阅点如何查询");
mapResult22.put("answer", "A:个人中心我的账户中即可查询");

Map<String,Object> mapResult31=new HashMap<String,Object>();
mapResult31.put("questiontype", 3);
mapResult31.put("question", "1.如何获取积分");
mapResult31.put("answer", "获取积分的方法");

Map<String,Object> mapResult41=new HashMap<String,Object>();
mapResult41.put("questiontype", 4);
mapResult41.put("question", "1.关于免费政策");
mapResult41.put("answer", "免费政策解读");

Map<String,Object> mapResult51=new HashMap<String,Object>();
mapResult51.put("questiontype", 5);
mapResult51.put("question", "1.怎么发表文章");
mapResult51.put("answer", "发表文章的犯法");

   List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
   list.add(mapResult11);
   list.add(mapResult12);
   list.add(mapResult13);
   list.add(mapResult21);
   list.add(mapResult22);
   list.add(mapResult31);
   list.add(mapResult41);
   list.add(mapResult51);
/* 原数据   [{question=1.如何修改密码, answer=A:已绑定的有效手机可以进入个人中心修改, questiontype=1},
    {question=2.如何注销账号, answer=A:注销账号, questiontype=1}, 
    {question=3.如何切换账号, answer=A:切换账号的方法, questiontype=1}, 
    {question=1.阅点有无有效期, answer=A:永久不过期, questiontype=2}, 
    {question=2.阅点如何查询, answer=A:个人中心我的账户中即可查询, questiontype=2}, 
    {question=1.如何获取积分, answer=获取积分的方法, questiontype=3}, 
    {question=1.关于免费政策, answer=免费政策解读, questiontype=4}, 
    {question=1.怎么发表文章, answer=发表文章的犯法, questiontype=5}]


 处理后的数据  result=[{name=关于账号 , questiontype=1, value=[{question=1.如何修改密码, answer=A:已绑定的有效手机可以进入个人中心修改}, {question=2.如何注销账号, answer=A:注销账号}, {question=3.如何切换账号, answer=A:切换账号的方法}]}, 
   {name=关于资费  , questiontype=2, value=[{question=1.阅点有无有效期, answer=A:永久不过期}, {question=2.阅点如何查询, answer=A:个人中心我的账户中即可查询}]}, 
   {name=关于积分 , questiontype=3, value=[{question=1.如何获取积分, answer=获取积分的方法}]}, 
   {name=关于免费政策 , questiontype=4, value=[{question=1.关于免费政策, answer=免费政策解读}]}, 
   {name=其他问题, questiontype=5, value=[{question=1.怎么发表文章, answer=发表文章的犯法}]}]*/
 
   //对list数据进行处理
String idColumn="questiontype";
String[] parentColumn={"questiontype"};
String[] childColumn={"question","answer"};
String collectionColumn="value";
Map<Object,Map<String,Object>> map=new LinkedHashMap<Object,Map<String,Object>>();
   for(int i = 0;i<list.size();i++){
    Map<String,Object> row=list.get(i);
    Object id=row.get(idColumn);
    Map<String,Object> parentRow=map.get(id);
    if(parentRow==null){
    parentRow=new HashMap<String,Object>();
    for(String Column:parentColumn){
    parentRow.put(Column,row.get(Column));
    }
    parentRow.put(collectionColumn, new ArrayList<Map<String,Object>>());
    map.put(id, parentRow);
    }
    @SuppressWarnings("unchecked")
List<Map<String,Object>> childTable=(List<Map<String, Object>>) parentRow.get(collectionColumn);
    Map<String,Object> chlidRow=new HashMap<String,Object>();
    for(String column:childColumn){
    chlidRow.put(column, row.get(column));
    }
    childTable.add(chlidRow);
   }
   list= new ArrayList(map.values());
   for(Map<String, Object> row:list){
    int questiontype=(int) row.get(idColumn);
    
    switch(questiontype){
    case 1:row.put("name", "关于账号");break;
    case 2:row.put("name", "关于资费");break;
    case 3:row.put("name", "关于积分");break;
    case 4:row.put("name", "关于免费政策");break;
    default:row.put("name", "其他问题");
    }
   }
   System.out.println("list"+list);
   
   
}


}


方法二:

package www.myListSort.com;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;


import www.listchuli.com.TestList;


public class MyListSortTest {
public static void main(String[] args){
Map<String,Object> mapResult11=new HashMap<String,Object>();
mapResult11.put("questiontype", 1);
mapResult11.put("question", "1.如何修改密码");
mapResult11.put("answer", "A:已绑定的有效手机可以进入个人中心修改");

Map<String,Object> mapResult12=new HashMap<String,Object>();
mapResult12.put("questiontype", 1);
mapResult12.put("question", "2.如何注销账号");
mapResult12.put("answer", "A:注销账号");

Map<String,Object> mapResult13=new HashMap<String,Object>();
mapResult13.put("questiontype", 1);
mapResult13.put("question", "3.如何切换账号");
mapResult13.put("answer", "A:切换账号的方法");

   Map<String,Object> mapResult21=new HashMap<String,Object>();
mapResult21.put("questiontype", 2);
mapResult21.put("question", "1.阅点有无有效期");
mapResult21.put("answer", "A:永久不过期");


Map<String,Object> mapResult22=new HashMap<String,Object>();
mapResult22.put("questiontype", 2);
mapResult22.put("question", "2.阅点如何查询");
mapResult22.put("answer", "A:个人中心我的账户中即可查询");

Map<String,Object> mapResult31=new HashMap<String,Object>();
mapResult31.put("questiontype", 3);
mapResult31.put("question", "1.如何获取积分");
mapResult31.put("answer", "获取积分的方法");

Map<String,Object> mapResult41=new HashMap<String,Object>();
mapResult41.put("questiontype", 4);
mapResult41.put("question", "1.关于免费政策");
mapResult41.put("answer", "免费政策解读");

Map<String,Object> mapResult51=new HashMap<String,Object>();
mapResult51.put("questiontype", 5);
mapResult51.put("question", "1.怎么发表文章");
mapResult51.put("answer", "发表文章的犯法");

   List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
   list.add(mapResult11);
   list.add(mapResult12);
   list.add(mapResult13);
   list.add(mapResult21);
   list.add(mapResult22);
   list.add(mapResult31);
   list.add(mapResult41);
   list.add(mapResult51);
   /* 原数据   [{question=1.如何修改密码, answer=A:已绑定的有效手机可以进入个人中心修改, questiontype=1},
    {question=2.如何注销账号, answer=A:注销账号, questiontype=1}, 
    {question=3.如何切换账号, answer=A:切换账号的方法, questiontype=1}, 
    {question=1.阅点有无有效期, answer=A:永久不过期, questiontype=2}, 
    {question=2.阅点如何查询, answer=A:个人中心我的账户中即可查询, questiontype=2}, 
    {question=1.如何获取积分, answer=获取积分的方法, questiontype=3}, 
    {question=1.关于免费政策, answer=免费政策解读, questiontype=4}, 
    {question=1.怎么发表文章, answer=发表文章的犯法, questiontype=5}]


         处理后的数据  result=[{name=关于账号 , questiontype=1, value=[{question=1.如何修改密码, answer=A:已绑定的有效手机可以进入个人中心修改}, {question=2.如何注销账号, answer=A:注销账号}, {question=3.如何切换账号, answer=A:切换账号的方法}]}, 
   {name=关于资费  , questiontype=2, value=[{question=1.阅点有无有效期, answer=A:永久不过期}, {question=2.阅点如何查询, answer=A:个人中心我的账户中即可查询}]}, 
   {name=关于积分 , questiontype=3, value=[{question=1.如何获取积分, answer=获取积分的方法}]}, 
   {name=关于免费政策 , questiontype=4, value=[{question=1.关于免费政策, answer=免费政策解读}]}, 
   {name=其他问题, questiontype=5, value=[{question=1.怎么发表文章, answer=发表文章的犯法}]}]*/
 
    //对list数据进行处理
    System.out.println("list"+list);
    List<Map<String,Object>> list1=new ArrayList<Map<String,Object>>();
    for(int i=0,j=list.size();i<j;i++){
    	Map<String, Object> Map=list.get(i);
    	Object question=Map.get("question");
    	Object questiontype=Map.get("questiontype");
    	Object answer=Map.get("answer");
    	int flag=0;
    	Map<String,Object> valuemap=new HashMap<String,Object>();
		valuemap.put("question", question);
		valuemap.put("answer", answer);
    	for(int i1=0;i1<list1.size();i1++){
    		Map<String,Object> map1=list1.get(i1);
    		//如果list1中有该questiontype,则直接在该value中添加valuemap
    		if(questiontype==map1.get("questiontype")){
    			List<Map<String,Object>> value=(List<java.util.Map<String, Object>>) map1.get("value");	
    			value.add(valuemap);
    			flag=1;break;
    		}
    	}
    	//当list1中没有匹配到该questiontype则需要新增一个value
    	if(flag==0){
    			Map<String,Object> maprow=new HashMap<String,Object>();
    			List<Map<String,Object>> value=new ArrayList<Map<String,Object>>();
    			value.add(valuemap);
    			maprow.put("questiontype", questiontype);
    			maprow.put("value", value);
    			list1.add(maprow);		 		
    	}   	
    }
    
    for(Map<String,Object> row:list1){
    	int questiontype=(int) row.get("questiontype");
    	switch(questiontype){
    	   case 1:row.put("name", "关于账号");break;
    	   case 2:row.put("name", "关于资费");break;
    	   case 3:row.put("name", "关于积分 ");break;
    	   case 4:row.put("name", "关于免费政策");break;
    	   default:row.put("name", "其它问题");
    	}
    }
        System.out.println("list1:"+list1);
   
}


}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值