Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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中基于属性的对象分组列表_Java_List_Collections_Pojo - Fatal编程技术网

java中基于属性的对象分组列表

java中基于属性的对象分组列表,java,list,collections,pojo,Java,List,Collections,Pojo,我有POJO列表,我想分组并创建过滤后的列表,如果leavingFrom、goingTo、forwardate、returnDate相同,则将乘客添加到同一对象 例如: Passanger, onWard, return, leavingFrom, goingTo A, 1-2-20, 3-2-20, BLR, PUNE B, 1-2-20 , 3-2

我有POJO
列表
,我想分组并创建过滤后的
列表
,如果
leavingFrom、goingTo、forwardate、returnDate
相同,则将乘客添加到同一对象

例如:

Passanger,     onWard,      return,      leavingFrom,     goingTo

  A,            1-2-20,      3-2-20,        BLR,            PUNE

  B,            1-2-20 ,     3-2-20,        BLR,            PUNE
最终
列表应包含:

Passanger,     onWard,      return,      leavingFrom,     goingTo

  A,B          1-2-20      3-2-20        BLR            PUNE
公共类TravelRequestDTO{
私人旅客名单;
私人字符串从;
私人字符串去;
私家侦探;
私人时间;
私有字符串返回日期;
私有字符串返回时间;
私有SegmentTypeEnum segmentType;
私有TravelModeEnum travelMode;
私人访问;
}
公营和平{
私有字符串名称;
私弦时代;
私有字符串移动;
}

您可以使用以下代码根据属性获取TravelRequestDTO对象列表

Function<TravelRequestDTO, List<Object>> compositeKey = travelRecord ->
    Arrays.<Object>asList(travelRecord.getOnWard(),travelRecord.getReturn(),travelRecord.getLeavingFrom(),travelRecord.getGoingTo());

Map<Object, List<TravelRequestDTO>> map =
people.collect(Collectors.groupingBy(compositeKey, Collectors.toList()));
Function compositeKey=travelRecord->
asList(travelRecord.getForward()、travelRecord.getReturn()、travelRecord.getLeavingFrom()、travelRecord.getGoingTo());
地图=
collect(Collectors.groupingBy(compositeKey,Collectors.toList());

您可以使用以下代码根据属性获取TravelRequestDTO对象列表

Function<TravelRequestDTO, List<Object>> compositeKey = travelRecord ->
    Arrays.<Object>asList(travelRecord.getOnWard(),travelRecord.getReturn(),travelRecord.getLeavingFrom(),travelRecord.getGoingTo());

Map<Object, List<TravelRequestDTO>> map =
people.collect(Collectors.groupingBy(compositeKey, Collectors.toList()));
Function compositeKey=travelRecord->
asList(travelRecord.getForward()、travelRecord.getReturn()、travelRecord.getLeavingFrom()、travelRecord.getGoingTo());
地图=
collect(Collectors.groupingBy(compositeKey,Collectors.toList());
,您可以这样做:

Map hashMap=new hashMap();
for(TravelRequestDTO值:initList){
List key=Arrays.asList(value.getForward()、value.getReturn()、value.getLeavingFrom()、value.getGoingTo());
如果(!hashMap.containsKey(键)){
列表=新的ArrayList();
列表。添加(值);
hashMap.put(键,列表);
}否则{
获取(键)、添加(值);
}
}
检查其他解决方案

这只是你想要的一半。之后,您必须从该地图中提取最终结果。或者您可以一步完成:

Map hashMap=new hashMap();
for(TravelRequestDTO值:initList){
List key=Arrays.asList(value.getForward()、value.getReturn()、value.getLeavingFrom()、value.getGoingTo());
如果(!hashMap.containsKey(键)){
TravelRequestDTO item=value;//传递第一个值或将其复制到新值
hashMap.put(键,项);
}否则{
hashMap.get(key.getPassengers().addAll(value.getPassengers());
}
}
列表结果=新的ArrayList(hashMap.values());
,您可以这样做:

Map hashMap=new hashMap();
for(TravelRequestDTO值:initList){
List key=Arrays.asList(value.getForward()、value.getReturn()、value.getLeavingFrom()、value.getGoingTo());
如果(!hashMap.containsKey(键)){
列表=新的ArrayList();
列表。添加(值);
hashMap.put(键,列表);
}否则{
获取(键)、添加(值);
}
}
检查其他解决方案

这只是你想要的一半。之后,您必须从该地图中提取最终结果。或者您可以一步完成:

Map hashMap=new hashMap();
for(TravelRequestDTO值:initList){
List key=Arrays.asList(value.getForward()、value.getReturn()、value.getLeavingFrom()、value.getGoingTo());
如果(!hashMap.containsKey(键)){
TravelRequestDTO item=value;//传递第一个值或将其复制到新值
hashMap.put(键,项);
}否则{
hashMap.get(key.getPassengers().addAll(value.getPassengers());
}
}
列表结果=新的ArrayList(hashMap.values());

你的问题是什么?你如何获得Pax对象,DTO在哪里存储第一位乘客的信息?我猜以前的
列表
和以后的
列表
名称一定不同。你的问题是什么?你如何获得Pax对象,DTO在哪里存储第一个乘客的信息?我猜前一个
列表
和后一个
列表
的名称必须不同。感谢您的回答,但我们需要java 1.7的答案。请选择任何一个?请帮助我找到答案,但我们需要java 1.7的答案。有人要吗?帮助me@abhinandanabhinandan然后你可以投票支持这个答案:)@abhinandanabhinandan然后你可以投票支持这个答案:)