package com.home;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
public class Test{
private static Items items = new Items();
private static List lists = new ArrayList<>();
public static void main(String[] args) {
List<BaseEntity> list = new ArrayList<BaseEntity>();
BaseEntity b1 = new BaseEntity("张三丰","18");
BaseEntity b2 = new BaseEntity("张辽","18");
BaseEntity b3 = new BaseEntity("张三","100");
BaseEntity b4 = new BaseEntity("李四","100");
BaseEntity b5 = new BaseEntity("王五","99");
BaseEntity b6 = new BaseEntity("马六","78");
list.add(b1);
list.add(b2);
list.add(b3);
list.add(b4);
list.add(b5);
list.add(b6);
List<Map<String,Object>> listMap = JSONArray.fromObject(list);
tst(listMap);
}
public static int tst(List<Map<String,Object>> listMap){
Map<String, Object> map = alist(listMap);
int i=Integer.valueOf(map.get("count").toString());
List<Map<String,Object>> lmap =(List<Map<String, Object>>) map.get("content");
List a = new ArrayList<>();
items.setObj(map.get("list"));
lists.add(map.get("list"));
System.out.println(lists);
if(i>0 && lmap.size()>0){
tst(lmap);
return i;
}else{
return 0;
}
}
@SuppressWarnings("unchecked")
public static Map alist(List<Map<String,Object>> listMap){
List l = new ArrayList<>();
String t1 = null;
int count = 0;
StringBuffer s= new StringBuffer();
Map<String, Object> map = new HashMap<String, Object>();
for(int i=1;i<listMap.size();i++){
t1 = listMap.get(0).get("age").toString(); //以相同年龄进行分组
if(listMap.get(i).containsValue(t1)){
s.append(i+",");
map.put("count", ++count);
}
}
if("".equals(s.toString())){
if(listMap.size()>1){
l.add(listMap.get(0));
listMap.remove(0);
map.put("count", 1);
map.put("content", listMap);
}else{
if(listMap.size()>0){
l.add(listMap.get(0));
}
map.put("count", 0);
map.put("content", listMap);
}
}else{
s.append(0);
String[] arr = s.toString().split(",");
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
if(i>0){
l.add(listMap.get(Integer.valueOf(arr[i].toString())-i));
listMap.remove(Integer.valueOf(arr[i].toString())-i);
}else{
l.add(listMap.get(Integer.valueOf(arr[i].toString())+0));
listMap.remove(Integer.valueOf(arr[i].toString())+0);
}
}
map.put("content", listMap);
}
map.put("list", l);
return map;
}
}
这里是 BaseEntity类:
package com.home;
public class BaseEntity {
private String name;
private String age;
public BaseEntity(String name, String age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
items类:
package com.home;
public class Items {
private Object obj;
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
}
运行效果:
[[{"age":"18","name":"张三丰"}, {"age":"18","name":"张辽"}], [{"age":"100","name":"张三"}, {"age":"100","name":"李四"}], [{"age":"99","name":"王五"}], [{"age":"78","name":"马六"}]]