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