java 如何将list拆分成多个list

List ls = new ArrayList ();
Map m =new HashMap();
m.put("NAME","ZS");
m.put("AGE","45");
m.put("SEX","Y");
Map m1 =new HashMap();
m1.put("NAME","LIX");
m1.put("AGE","12");
m1.put("SEX","Y");
Map m2 =new HashMap();
m2.put("NAME","XF");
m2.put("AGE","29");
m2.put("SEX","N");
....
ls.add(m);
ls.add(m1);
ls.add(m2);
......
ls.add(mn);
list有n个元素。如何根据m的AGE属性,获得多个list,每个list中只存放相同age的map。

如果你的意思是年龄相等的放在一起的话,那么:

import java.util.ArrayList;
/**

  • java 如何将list拆分成多个list
  • List ls = new ArrayList (); Map m =new HashMap(); m.put("NAME","ZS"); m.put("AGE","45"); m.put("SEX","Y"); Map m1 =new HashMap(); m1.put("NAME","LIX"); m1.put("AGE","12"); m1.put("SEX","Y"); Map m2 =new HashMap(); m2.put("NAME","XF"); m2.put("AGE","29"); m2.put("SEX","N"); .... ls.add(m); ls.add(m1); ls.add(m2); ...... ls.add(mn); list有n个元素。如何根据m的AGE属性,获得多个list,每个list中只存放相同age的map。 */ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Random; import java.util.Set;

public class Splitlist {
//用来存储拆分后的list
static Map subListMap=new HashMap();
//假设有300个map,下面的循环为其赋值
static List> list=new ArrayList>();
//用于临时存储subList引用的变量
static List> middleList=null;
public static void main (String[] args){
for(int i=0;i Map m=new HashMap();
m.put("NAME", "name"+i);
m.put("AGE", new Random().nextInt(100));
m.put("SEX", i%2==0?"男":"女");
list.add(m);
}

//假设年龄在0到100岁之间,那么:
    for(int age=1;age<100;age++){
        //用于计数,当count为0时new一个List集合,并且存入subListMap。
        int count=0;
        for(int i=0;i<list.size();i++){
            if(list.get(i).get("AGE").equals(age)){
               List<Map<String,Object>> subList=getList(count);
               subList.add(list.get(i));
               if(count==0){
                   subListMap.put("AGE为"+age+"岁的子集:", subList);
               }
                count++;

            }
        }
    }

    Set<Entry<String,Object>> entrySet=subListMap.entrySet();

    for(Entry<String,Object> es:entrySet){
        System.out.println(es.getKey());
        System.out.println(es.getValue().toString());
    }




}

static List<Map<String,Object>> getList(int n){
    if(n==0){
        List<Map<String,Object>> li= new ArrayList<Map<String,Object>>();
        middleList=li;
    }
    return middleList;

}


控制台打印结果是:


AGE为20岁的子集:

[{SEX=女, NAME=name183, AGE=20}, {SEX=男, NAME=name250, AGE=20}, {SEX=男, NAME=name262, AGE=20}, {SEX=男, NAME=name266, AGE=20}, {SEX=女, NAME=name297, AGE=20}]
AGE为34岁的子集:
[{SEX=男, NAME=name36, AGE=34}, {SEX=男, NAME=name96, AGE=34}, {SEX=女, NAME=name113, AGE=34}]
AGE为51岁的子集:
[{SEX=男, NAME=name38, AGE=51}, {SEX=男, NAME=name74, AGE=51}, {SEX=男, NAME=name168, AGE=51}, {SEX=女, NAME=name221, AGE=51}, {SEX=男, NAME=name234, AGE=51}]
AGE为79岁的子集:
[{SEX=男, NAME=name128, AGE=79}]
AGE为26岁的子集:
[{SEX=男, NAME=name30, AGE=26}, {SEX=男, NAME=name62, AGE=26}, {SEX=女, NAME=name181, AGE=26}, {SEX=男, NAME=name184, AGE=26}, {SEX=女, NAME=name241, AGE=26}]
AGE为5岁的子集:
[{SEX=男, NAME=name42, AGE=5}, {SEX=男, NAME=name70, AGE=5}, {SEX=女, NAME=name101, AGE=5}, {SEX=女, NAME=name131, AGE=5}, {SEX=女, NAME=name147, AGE=5}, {SEX=女, NAME=name155, AGE=5}, {SEX=男, NAME=name160, AGE=5}, {SEX=男, NAME=name242, AGE=5}]
AGE为57岁的子集:
[{SEX=女, NAME=name149, AGE=57}, {SEX=女, NAME=name245, AGE=57}, {SEX=男, NAME=name286, AGE=57}]
AGE为12岁的子集:
[{SEX=女, NAME=name61, AGE=12}, {SEX=男, NAME=name280, AGE=12}]
AGE为65岁的子集:
[{SEX=女, NAME=name65, AGE=65}]
AGE为73岁的子集:
[{SEX=男, NAME=name26, AGE=73}, {SEX=女, NAME=name35, AGE=73}, {SEX=女, NAME=name39, AGE=73}, {SEX=男, NAME=name194, AGE=73}]
AGE为49岁的子集:
[{SEX=女, NAME=name75, AGE=49}, {SEX=女, NAME=name175, AGE=49}, {SEX=女, NAME=name199, AGE=49}, {SEX=女, NAME=name223, AGE=49}, {SEX=男, NAME=name258, AGE=49}]
AGE为35岁的子集:
[{SEX=男, NAME=name14, AGE=35}, {SEX=女, NAME=name165, AGE=35}, {SEX=女, NAME=name189, AGE=35}]
AGE为88岁的子集:
[{SEX=女, NAME=name81, AGE=88}, {SEX=女, NAME=name265, AGE=88}]
AGE为74岁的子集:
[{SEX=男, NAME=name144, AGE=74}, {SEX=男, NAME=name162, AGE=74}, {SEX=女, NAME=name237, AGE=74}]
AGE为43岁的子集:
[{SEX=男, NAME=name54, AGE=43}, {SEX=男, NAME=name114, AGE=43}, {SEX=男, NAME=name202, AGE=43}]
AGE为27岁的子集:
[{SEX=女, NAME=name111, AGE=27}, {SEX=男, NAME=name212, AGE=27}]
AGE为96岁的子集:
[{SEX=女, NAME=name277, AGE=96}]
AGE为21岁的子集:
[{SEX=女, NAME=name11, AGE=21}, {SEX=女, NAME=name95, AGE=21}, {SEX=男, NAME=name180, AGE=21}, {SEX=女, NAME=name187, AGE=21}, {SEX=男, NAME=name260, AGE=21}]
AGE为82岁的子集:
[{SEX=女, NAME=name57, AGE=82}, {SEX=女, NAME=name79, AGE=82}, {SEX=男, NAME=name80, AGE=82}, {SEX=女, NAME=name173, AGE=82}, {SEX=女, NAME=name185, AGE=82}, {SEX=女, NAME=name269, AGE=82}]
AGE为90岁的子集:
[{SEX=女, NAME=name219, AGE=90}]
AGE为41岁的子集:
[{SEX=女, NAME=name31, AGE=41}, {SEX=女, NAME=name195, AGE=41}, {SEX=女, NAME=name205, AGE=41}]
AGE为44岁的子集:
[{SEX=女, NAME=name121, AGE=44}, {SEX=女, NAME=name159, AGE=44}]
AGE为19岁的子集:
[{SEX=女, NAME=name161, AGE=19}, {SEX=女, NAME=name209, AGE=19}, {SEX=男, NAME=name270, AGE=19}, {SEX=女, NAME=name289, AGE=19}]
AGE为55岁的子集:
[{SEX=女, NAME=name73, AGE=55}]
AGE为47岁的子集:
[{SEX=女, NAME=name7, AGE=47}, {SEX=男, NAME=name88, AGE=47}, {SEX=女, NAME=name171, AGE=47}, {SEX=男, NAME=name210, AGE=47}]
AGE为30岁的子集:
[{SEX=男, NAME=name2, AGE=30}, {SEX=男, NAME=name20, AGE=30}, {SEX=女, NAME=name77, AGE=30}, {SEX=男, NAME=name100, AGE=30}, {SEX=男, NAME=name236, AGE=30}, {SEX=男, NAME=name256, AGE=30}]
AGE为36岁的子集:
[{SEX=男, NAME=name158, AGE=36}]
AGE为39岁的子集:
[{SEX=男, NAME=name58, AGE=39}, {SEX=女, NAME=name137, AGE=39}]
AGE为33岁的子集:
[{SEX=女, NAME=name153, AGE=33}, {SEX=女, NAME=name273, AGE=33}, {SEX=男, NAME=name296, AGE=33}]
AGE为60岁的子集:
[{SEX=女, NAME=name117, AGE=60}, {SEX=男, NAME=name172, AGE=60}]
AGE为52岁的子集:
[{SEX=女, NAME=name67, AGE=52}, {SEX=女, NAME=name261, AGE=52}]
AGE为28岁的子集:
[{SEX=女, NAME=name33, AGE=28}, {SEX=女, NAME=name107, AGE=28}]
AGE为11岁的子集:
[{SEX=女, NAME=name71, AGE=11}, {SEX=女, NAME=name93, AGE=11}, {SEX=女, NAME=name201, AGE=11}, {SEX=女, NAME=name217, AGE=11}, {SEX=女, NAME=name233, AGE=11}, {SEX=女, NAME=name283, AGE=11}]
AGE为92岁的子集:
[{SEX=女, NAME=name15, AGE=92}, {SEX=女, NAME=name125, AGE=92}, {SEX=女, NAME=name295, AGE=92}]
AGE为95岁的子集:
[{SEX=男, NAME=name52, AGE=95}]
AGE为4岁的子集:
[{SEX=女, NAME=name151, AGE=4}]
AGE为17岁的子集:
[{SEX=女, NAME=name91, AGE=17}, {SEX=男, NAME=name104, AGE=17}, {SEX=女, NAME=name115, AGE=17}, {SEX=男, NAME=name196, AGE=17}]
AGE为25岁的子集:
[{SEX=女, NAME=name53, AGE=25}, {SEX=女, NAME=name139, AGE=25}, {SEX=男, NAME=name204, AGE=25}]
AGE为14岁的子集:
[{SEX=男, NAME=name200, AGE=14}]
AGE为1岁的子集:
[{SEX=男, NAME=name218, AGE=1}]
AGE为22岁的子集:
[{SEX=女, NAME=name9, AGE=22}, {SEX=女, NAME=name59, AGE=22}, {SEX=男, NAME=name142, AGE=22}]
AGE为87岁的子集:
[{SEX=女, NAME=name3, AGE=87}, {SEX=女, NAME=name23, AGE=87}, {SEX=女, NAME=name29, AGE=87}, {SEX=女, NAME=name47, AGE=87}, {SEX=男, NAME=name208, AGE=87}]
AGE为7岁的子集:
[{SEX=女, NAME=name37, AGE=7}, {SEX=男, NAME=name102, AGE=7}, {SEX=女, NAME=name197, AGE=7}, {SEX=女, NAME=name239, AGE=7}]
AGE为98岁的子集:
[{SEX=男, NAME=name8, AGE=98}, {SEX=男, NAME=name10, AGE=98}, {SEX=男, NAME=name24, AGE=98}, {SEX=女, NAME=name41, AGE=98}, {SEX=男, NAME=name174, AGE=98}, {SEX=女, NAME=name259, AGE=98}, {SEX=女, NAME=name263, AGE=98}, {SEX=女, NAME=name287, AGE=98}]
AGE为62岁的子集:
[{SEX=女, NAME=name63, AGE=62}, {SEX=男, NAME=name278, AGE=62}]
AGE为37岁的子集:
[{SEX=男, NAME=name48, AGE=37}, {SEX=男, NAME=name188, AGE=37}]
AGE为23岁的子集:
[{SEX=女, NAME=name123, AGE=23}, {SEX=男, NAME=name232, AGE=23}]
AGE为68岁的子集:
[{SEX=男, NAME=name50, AGE=68}, {SEX=男, NAME=name152, AGE=68}, {SEX=男, NAME=name238, AGE=68}]
AGE为76岁的子集:
[{SEX=女, NAME=name105, AGE=76}]
AGE为15岁的子集:
[{SEX=女, NAME=name5, AGE=15}, {SEX=男, NAME=name126, AGE=15}]
AGE为54岁的子集:
[{SEX=女, NAME=name17, AGE=54}, {SEX=男, NAME=name130, AGE=54}]
AGE为99岁的子集:
[{SEX=女, NAME=name231, AGE=99}]
AGE为8岁的子集:
[{SEX=女, NAME=name83, AGE=8}, {SEX=女, NAME=name87, AGE=8}, {SEX=女, NAME=name213, AGE=8}, {SEX=女, NAME=name251, AGE=8}, {SEX=女, NAME=name267, AGE=8}, {SEX=女, NAME=name281, AGE=8}]
AGE为70岁的子集:
[{SEX=男, NAME=name108, AGE=70}, {SEX=男, NAME=name112, AGE=70}, {SEX=男, NAME=name140, AGE=70}, {SEX=男, NAME=name148, AGE=70}, {SEX=男, NAME=name246, AGE=70}, {SEX=女, NAME=name275, AGE=70}]
AGE为84岁的子集:
[{SEX=男, NAME=name44, AGE=84}]
AGE为31岁的子集:
[{SEX=男, NAME=name92, AGE=31}, {SEX=男, NAME=name164, AGE=31}]
AGE为32岁的子集:
[{SEX=男, NAME=name18, AGE=32}, {SEX=女, NAME=name21, AGE=32}, {SEX=女, NAME=name179, AGE=32}, {SEX=女, NAME=name203, AGE=32}]
AGE为71岁的子集:
[{SEX=男, NAME=name118, AGE=71}, {SEX=男, NAME=name138, AGE=71}, {SEX=男, NAME=name198, AGE=71}, {SEX=男, NAME=name216, AGE=71}, {SEX=男, NAME=name276, AGE=71}]
AGE为38岁的子集:
[{SEX=男, NAME=name66, AGE=38}, {SEX=男, NAME=name116, AGE=38}, {SEX=女, NAME=name133, AGE=38}, {SEX=男, NAME=name166, AGE=38}, {SEX=女, NAME=name193, AGE=38}, {SEX=男, NAME=name274, AGE=38}, {SEX=女, NAME=name285, AGE=38}]
AGE为46岁的子集:
[{SEX=男, NAME=name56, AGE=46}, {SEX=女, NAME=name129, AGE=46}, {SEX=女, NAME=name207, AGE=46}, {SEX=男, NAME=name294, AGE=46}]
AGE为63岁的子集:
[{SEX=女, NAME=name109, AGE=63}]
AGE为2岁的子集:
[{SEX=男, NAME=name78, AGE=2}, {SEX=女, NAME=name271, AGE=2}, {SEX=男, NAME=name288, AGE=2}]
AGE为85岁的子集:
[{SEX=女, NAME=name143, AGE=85}]
AGE为40岁的子集:
[{SEX=男, NAME=name68, AGE=40}, {SEX=男, NAME=name94, AGE=40}, {SEX=女, NAME=name191, AGE=40}, {SEX=男, NAME=name206, AGE=40}, {SEX=男, NAME=name284, AGE=40}]
AGE为93岁的子集:
[{SEX=男, NAME=name0, AGE=93}, {SEX=男, NAME=name46, AGE=93}, {SEX=男, NAME=name76, AGE=93}]
AGE为16岁的子集:
[{SEX=女, NAME=name85, AGE=16}, {SEX=女, NAME=name253, AGE=16}, {SEX=男, NAME=name268, AGE=16}, {SEX=男, NAME=name282, AGE=16}]
AGE为24岁的子集:
[{SEX=男, NAME=name6, AGE=24}]
AGE为69岁的子集:
[{SEX=女, NAME=name145, AGE=69}, {SEX=女, NAME=name227, AGE=69}]
AGE为77岁的子集:
[{SEX=女, NAME=name119, AGE=77}, {SEX=男, NAME=name120, AGE=77}, {SEX=女, NAME=name163, AGE=77}, {SEX=男, NAME=name170, AGE=77}, {SEX=男, NAME=name272, AGE=77}, {SEX=女, NAME=name293, AGE=77}]
AGE为9岁的子集:
[{SEX=男, NAME=name90, AGE=9}]
AGE为83岁的子集:
[{SEX=女, NAME=name25, AGE=83}, {SEX=男, NAME=name32, AGE=83}, {SEX=女, NAME=name127, AGE=83}, {SEX=男, NAME=name226, AGE=83}]
AGE为6岁的子集:
[{SEX=女, NAME=name51, AGE=6}, {SEX=男, NAME=name290, AGE=6}]
AGE为86岁的子集:
[{SEX=男, NAME=name64, AGE=86}, {SEX=女, NAME=name97, AGE=86}, {SEX=男, NAME=name244, AGE=86}]
AGE为80岁的子集:
[{SEX=女, NAME=name1, AGE=80}]
AGE为10岁的子集:
[{SEX=男, NAME=name106, AGE=10}, {SEX=男, NAME=name186, AGE=10}]
AGE为91岁的子集:
[{SEX=女, NAME=name45, AGE=91}, {SEX=女, NAME=name99, AGE=91}, {SEX=男, NAME=name146, AGE=91}, {SEX=男, NAME=name178, AGE=91}, {SEX=男, NAME=name190, AGE=91}]
AGE为75岁的子集:
[{SEX=男, NAME=name86, AGE=75}, {SEX=女, NAME=name177, AGE=75}, {SEX=男, NAME=name224, AGE=75}]
AGE为78岁的子集:
[{SEX=女, NAME=name55, AGE=78}, {SEX=男, NAME=name182, AGE=78}, {SEX=女, NAME=name279, AGE=78}]
AGE为89岁的子集:
[{SEX=女, NAME=name89, AGE=89}, {SEX=男, NAME=name156, AGE=89}, {SEX=男, NAME=name176, AGE=89}, {SEX=男, NAME=name222, AGE=89}]
AGE为94岁的子集:
[{SEX=男, NAME=name16, AGE=94}, {SEX=女, NAME=name49, AGE=94}, {SEX=女, NAME=name135, AGE=94}]
AGE为97岁的子集:
[{SEX=男, NAME=name28, AGE=97}, {SEX=男, NAME=name110, AGE=97}]
AGE为3岁的子集:
[{SEX=女, NAME=name157, AGE=3}, {SEX=男, NAME=name214, AGE=3}, {SEX=女, NAME=name229, AGE=3}]
AGE为50岁的子集:
[{SEX=女, NAME=name167, AGE=50}, {SEX=男, NAME=name220, AGE=50}, {SEX=男, NAME=name228, AGE=50}, {SEX=女, NAME=name235, AGE=50}]
AGE为53岁的子集:
[{SEX=女, NAME=name247, AGE=53}, {SEX=男, NAME=name264, AGE=53}]
AGE为56岁的子集:
[{SEX=男, NAME=name84, AGE=56}, {SEX=男, NAME=name122, AGE=56}, {SEX=男, NAME=name134, AGE=56}, {SEX=男, NAME=name230, AGE=56}, {SEX=男, NAME=name254, AGE=56}]
AGE为59岁的子集:
[{SEX=男, NAME=name136, AGE=59}, {SEX=男, NAME=name154, AGE=59}]
AGE为42岁的子集:
[{SEX=男, NAME=name4, AGE=42}, {SEX=女, NAME=name19, AGE=42}, {SEX=男, NAME=name34, AGE=42}, {SEX=男, NAME=name82, AGE=42}, {SEX=女, NAME=name103, AGE=42}]
AGE为18岁的子集:
[{SEX=男, NAME=name72, AGE=18}, {SEX=男, NAME=name192, AGE=18}, {SEX=男, NAME=name240, AGE=18}, {SEX=男, NAME=name248, AGE=18}]
AGE为67岁的子集:
[{SEX=女, NAME=name243, AGE=67}]
AGE为45岁的子集:
[{SEX=女, NAME=name69, AGE=45}, {SEX=男, NAME=name124, AGE=45}, {SEX=女, NAME=name249, AGE=45}, {SEX=男, NAME=name298, AGE=45}]
AGE为48岁的子集:
[{SEX=女, NAME=name27, AGE=48}, {SEX=女, NAME=name225, AGE=48}, {SEX=男, NAME=name252, AGE=48}, {SEX=女, NAME=name255, AGE=48}, {SEX=女, NAME=name299, AGE=48}]
AGE为72岁的子集:
[{SEX=女, NAME=name13, AGE=72}, {SEX=男, NAME=name22, AGE=72}, {SEX=女, NAME=name43, AGE=72}, {SEX=男, NAME=name98, AGE=72}, {SEX=男, NAME=name132, AGE=72}, {SEX=女, NAME=name211, AGE=72}, {SEX=男, NAME=name292, AGE=72}]
AGE为29岁的子集:
[{SEX=女, NAME=name169, AGE=29}, {SEX=女, NAME=name257, AGE=29}]
AGE为64岁的子集:
[{SEX=男, NAME=name12, AGE=64}, {SEX=女, NAME=name141, AGE=64}, {SEX=男, NAME=name150, AGE=64}, {SEX=女, NAME=name291, AGE=64}]
AGE为61岁的子集:
[{SEX=男, NAME=name40, AGE=61}, {SEX=男, NAME=name60, AGE=61}, {SEX=女, NAME=name215, AGE=61}]

用map接口中的containsKey方法能实现你的要求,用这个方法进行判断,建议你把age、name、sex创建为一个对象,如果age不存在就放到一个新的map中比如

 <Map<String,Object>

存在就加入进去。key为年龄,value为你的map,最后把相同的age的Map加入到List中,这样List>

好奇怪的数据结构。。。最后的myList就是你要的

 import java.util.*;
class Test
{
    public static void main(String[] args)
    {
        List ls = new ArrayList ();
        Map m =new HashMap();
        m.put("NAME","ZS");
        m.put("AGE","45");
        m.put("SEX","Y");
        Map m1 =new HashMap();
        m1.put("NAME","LIX");
        m1.put("AGE","12");
        m1.put("SEX","Y");
        Map m2 =new HashMap();
        m2.put("NAME","XF");
        m2.put("AGE","29");
        m2.put("SEX","N");
        Map m3 =new HashMap();
        m3.put("NAME","HAHA");
        m3.put("AGE","45");
        m3.put("SEX","Y");
        ls.add(m);
        ls.add(m1);
        ls.add(m2);
        ls.add(m3);

        List<Map> ls2 = (List<Map>)ls;
        Map<String, List<Map<String,String>>> ageMap = new HashMap<String, List<Map<String,String>>>();
        for (Map<String,String> map : ls2)
        {
            String age = map.get("AGE");
            if (ageMap.containsKey(age)) 
            {
                ageMap.get(age).add(map);
            }
            else
            {
                List<Map<String,String>> newList = new ArrayList<Map<String,String>>();
                newList.add(map);
                ageMap.put(age, newList);
            }
        }
        System.out.println(ageMap);

        Iterator iter = ageMap.entrySet().iterator(); 
        while (iter.hasNext()) { 
            Map.Entry entry = (Map.Entry) iter.next(); 
            Object age = entry.getKey(); 
            Object myList = entry.getValue();
            System.out.println(age);
            System.out.println(myList);
        } 



    }


}

public static void main(String[] args) {
//给List赋值
List> ls = new ArrayList ();
Map m =new HashMap();
m.put("NAME","ZS");
m.put("AGE","45");
m.put("SEX","Y");
Map m1 =new HashMap();
m1.put("NAME","LIX");
m1.put("AGE","12");
m1.put("SEX","Y");
Map m2 =new HashMap();
m2.put("NAME","XF");
m2.put("AGE","29");
m2.put("SEX","N");
Map m3 =new HashMap();
m3.put("NAME","ZS");
m3.put("AGE","45");
m3.put("SEX","A");
Map m4 =new HashMap();
m4.put("NAME","ZS");
m4.put("AGE","13");
m4.put("SEX","A");
ls.add(m);
ls.add(m1);
ls.add(m2);
ls.add(m3);
ls.add(m4);

    Map<String, List<Map<String, String>>> newMap=new HashMap<>();
    for (Map<String, String> map : ls) {
        //当Map里找不到该年龄时,将对象添加到新的List中
        if(newMap.get(map.get("AGE"))==null){
            List<Map<String, String>> addMap=new ArrayList<>();
            addMap.add(map);
            newMap.put(map.get("AGE"), addMap);
        }else{
            //当找到该年龄时,将list取出添加新对象,然后再放入Map中
            List<Map<String, String>> list=newMap.get(map.get("AGE"));
            list.add(map);
            newMap.put(map.get("AGE"), list);
        }
    }

}
    public static List[] split(List list) {
        Map map = new HashMap();
        Iterator iter = list.iterator();
        while (iter.hasNext()) {
            Map row = (Map) iter.next();
            Object age = row.get("AGE");
            List group = (List) map.get(age);
            if (group == null) {
                group = new ArrayList();
                map.put(age, group);
            }
            group.add(row);
        }
        return (List[]) map.values().toArray(new List[map.size()]);
    }

list.sream().collect(Collectors.groupingBy(m -> m.getAge()));