项目中突然用到,随便写了一下,应该有更简单、更有效率的方法,请指教。。
将[{WT=22, DEPT=22, USER=11}, {WT=22, DEPT=22, USER=11}, {WT=222, DEPT=222, USER=121}]转换成
不重复的user:121||11
不重复的dept:222||22
所有数据拼接:11,22,22||11,22,22||121,222,222
返回到页面,拼成表格
package tong.hadoop.workmapreduce;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String args[]){
List list=new ArrayList();
Map map = new HashMap();
map.put("USER", "11");
map.put("DEPT", "22");
map.put("WT", "22");
list.add(map);
Map map2 = new HashMap();
map2.put("USER", "11");
map2.put("DEPT", "22");
map2.put("WT", "22");
list.add(map2);
Map map3 = new HashMap();
map3.put("USER", "121");
map3.put("DEPT", "222");
map3.put("WT", "222");
list.add(map3);
//获取人员字符串 部门字符串
List userList=new ArrayList();
List deptList=new ArrayList();
for(int i=0;i<list.size();i++){
Map map11=(Map) list.get(i);
userList.add(map11.get("USER"));
deptList.add(map11.get("DEPT"));
}
System.out.println(getStr(userList));
System.out.println(getStr(deptList));
//获取联合字符串
String conStr="";
for(int i=0;i<list.size();i++){
Map map11=(Map) list.get(i);
conStr+=(map11.get("USER")+","+map11.get("DEPT")+","+map11.get("WT")+"||");
}
System.out.println(conStr.substring(0, conStr.length()-2));
}
public static String getStr(List list){
//去重
HashSet set=new HashSet();
for(Object e:list){
set.add(e);
}
String userStr="";
Iterator<String> iterator=set.iterator();
while(iterator.hasNext()){
userStr+=iterator.next()+"||";
}
userStr = userStr.substring(0, userStr.length()-2);
return userStr;
}
}