BookItem类.
有BookID,BookName,CharptName..等字段  有List<BookItem> 集合.
备注:BookID可以重复问题:
如何根据BookID归类分组动态创建数组呢.  比如:
有List<BookItem>数据
BookID,BookName,CharptName
BK001 ,火影, 第一集
BK001 ,火影, 第二集
BK001 ,火影, 第三集
BK002 ,海贼, 第一集
BK003 ,死神, 第一集
加入有这样数据就要动态创建三个List来分别放火影(三集),海贼,死神.我如何知道内容数据有创建多少个数组呢. 代码怎么实现呢

解决方案 »

  1.   

    你把创建的List,再放入到一个list中 ,然后通过List.size(),不久可以了 ?list1、list2、list3....List listAll = new ArrayList() ;
    listAll.add(list1) ;
    listAll.add(list2) ;
    listAll.add(list3) ;
    .
    .
    .for (int i = 0; i < listAll.size(); i++){
        List<BookItem> tmp = (List<BookItem>) listAll.get(i) ;
         ...
    }不知道我的理解对不对哦
      

  2.   


    listAll是已经有的没归类的数据,现在要按这个listALL的数据去归类动态的创建多少个list1 ,list2等等
      

  3.   

    先通过BookID来排序,然后遍历这些数据,记录下当前的id与上一个id相比,如果不同,那么就新建一个,并且把这个id设置为上一个id存起来用于以后的比较,如果相同,那么就直接放入新建的list当中。
      

  4.   

    Map<String,List<BookItem>> map = new HashMap<String,List<BookItem>>;
    List<BookItem> list = new ArrayList<BookItem>();
    for(BookItem bi:list){
    if(map.containsKey(bi.getBookId)){
    map.get(bi.getBookId).add(bi);
    }
    else{
    List<BookItem> list1 = new ArrayList<BookItem>();
    list1.add(bi);
    map.put(bi.getBookId,list1);
    }
    }
    直接用map吧。
      

  5.   

    你把创建的List,再放入到一个list中 ,然后通过List.size(),不久可以了 ?list1、list2、list3....List listAll = new ArrayList() ;
    listAll.add(list1) ;
    listAll.add(list2) ;
    listAll.add(list3) ;
    .
    .
    .for (int i = 0; i < listAll.size(); i++){
      List<BookItem> tmp = (List<BookItem>) listAll.get(i) ;
      ...
    }
      

  6.   

    遍历+ List<List<BookItem>>或Map<List<BookItem>>