Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从arraylist获取组作为列表_Java_Arraylist_Grouping - Fatal编程技术网

Java 从arraylist获取组作为列表

Java 从arraylist获取组作为列表,java,arraylist,grouping,Java,Arraylist,Grouping,我从arraylist跟踪emaze功能失调到分组。在下面的代码中,我可以从地图中分组。控制台显示分组元素。我需要将它们添加到arraylist中 例如,RETURN liat有120个元素,但分组映射包含三个组,每个组40个元素 List<LoanRepaymentSchedule> repay = loanService .getLoanRepaymentScheduleById(groupLoan.getLoanId());

我从arraylist跟踪emaze功能失调到分组。在下面的代码中,我可以从地图中分组。控制台显示分组元素。我需要将它们添加到arraylist中

例如,RETURN liat有120个元素,但分组映射包含三个组,每个组40个元素

        List<LoanRepaymentSchedule> repay = loanService
                .getLoanRepaymentScheduleById(groupLoan.getLoanId());

        Map<Integer, List<LoanRepaymentSchedule>> map = Groups.groupBy(
                repay, new Pluck<Integer, LoanRepaymentSchedule>(
                        LoanRepaymentSchedule.class, "memberCount"));
        System.out.println ("map.keySet().size() "+map.keySet().iterator());

        for (Integer key : map.keySet()) {
            List<LoanRepaymentSchedule> pro =  map.get(key);
            System.out.println("Element-******* "+pro.size());          
            System.out.println("Element-******* "+pro.get(0));          

        }
我需要列表1作为

id 1 val 5
id 1 val 5
id 3 val 1
id 1 val 1
将2列为

id 1 val 6
id 1 val 6
将1列为

id 1 val 5
id 1 val 5
id 3 val 1
id 1 val 1

如果我理解正确,您希望将3个列表添加到单个列表中

您可以简单地执行以下操作:

    List<LoanRepaymentSchedule> output = new ArrayList<LoanRepaymentSchedule>();
    for (Integer key : map.keySet()) {
        output.addAll(map.get(key));        
    }
假设
LoanRepaymentSchedule
有一个
getMemberCount
方法,您可以通过该方法对
LoanRepaymentSchedule
实例进行分组。

试试这个吗?
    try this ? 

     ArrayList[] lists=new ArrayList[3];
    for (ArrayList list : lists) {
        list=new ArrayList();
    }
    boolean firstInsert=true;
    int i=0;
     for (Integer key : map.keySet()) {
        List<LoanRepaymentSchedule> pro =  map.get(key);
        System.out.println("Element-******* "+pro.size());          
        System.out.println("Element-******* "+pro.get(0));
         try {

             if (firstInsert) {
                 if (lists[0].isEmpty()) {
                     lists[0].add(pro);
                     break;
                 }
                 if (lists[1].isEmpty()) {
                     lists[1].add(pro);
                     break;
                 }
                 if (lists[2].isEmpty()) {
                     lists[2].add(pro);
                     firstInsert=false;
                     break;
                 }
             }

             if(pro.get(0)==lists[0].get(lists[0].size()-1)){lists[0].add(pro);
        }
             if(pro.get(0)==lists[1].get(lists[1].size()-1)){lists[1].add(pro);
        }
             if(pro.get(0)==lists[2].get(lists[2].size()-1)){lists[2].add(pro);
        }
         } catch (Exception e) {
         }


    }
ArrayList[]列表=新的ArrayList[3]; 对于(ArrayList:列表){ 列表=新的ArrayList(); } 布尔值firstInsert=true; int i=0; for(整数键:map.keySet()){ List pro=map.get(键); System.out.println(“元素-*******”+pro.size()); System.out.println(“元素-********”+pro.get(0)); 试一试{ 如果(第一次插入){ if(列出[0].isEmpty()){ 列表[0]。添加(pro); 打破 } if(列出[1].isEmpty()){ 列表[1]。添加(pro); 打破 } if(列出[2].isEmpty()){ 列表[2]。添加(pro); firstInsert=false; 打破 } } 如果(pro.get(0)=lists[0].get(lists[0].size()-1)){lists[0].add(pro); } 如果(pro.get(0)=lists[1].get(lists[1].size()-1)){lists[1].add(pro); } 如果(pro.get(0)=lists[2].get(lists[2].size()-1)){lists[2].add(pro); } }捕获(例外e){ } }
您需要列表(1、2、3)做什么?理解id是关键?和5或6是专业的。得到(0);?你到底需要什么?地图中已经存储了不同的列表。这些列表不是已经包含了你想要的吗?@Eran我想他有一个列表,他想把它分为3个不同的类别lists@MohammedHousseyn Taleb,你就是……那么第一个列表就是你想要的数组循环。如果成功的话,我不知道怎么去尝试。我的英语很差,他没有要求保存3个不同列表上的所有数据吗?