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。

java 如何将list拆分成多个list
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- hxw810710 2017-02-27 01:39关注
如果你的意思是年龄相等的放在一起的话,那么:
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}]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报