0
点赞
收藏
分享

微信扫一扫

Java中集合中根据对象的某个属性去重


场景

有一个List对象集合,根据每一个对象的某个属性去重。

实现

去重方法:

private static ArrayList<FlightResult> removeDuplicateFlight(List<FlightResult> flights) {
Set<FlightResult> set = new TreeSet<FlightResult>(new Comparator<FlightResult>() {
@Override
public int compare(FlightResult o1, FlightResult o2) {
//字符串,则按照asicc码升序排列
return o1.getAirlinename().compareTo(o2.getAirlinename());
}
});
set.addAll(flights);
return new ArrayList<FlightResult>(set);
}

 

实际调用示例:

//获取国际机票航空公司不重复航空公司
private List<FrontSelectModel> getGJAirlineList(List<ResultInfo> resultInfo, List<FrontSelectModel> airlineList) {

List<ResultInfo> tmplist = new ArrayList<ResultInfo>();
tmplist.addAll(resultInfo);

List<FlightResult> flightList= new ArrayList<FlightResult>();

//取得所有航班
for (int i = 0; i < tmplist.size(); i++) {
for(int k = 0; k < tmplist.get(i).getFlightResult().size(); k++) {
flightList.add(tmplist.get(i).getFlightResult().get(k));
}
}
//去重
List<FlightResult> flightListAfterQvChong=removeDuplicateFlight(flightList);

for (FlightResult result : flightListAfterQvChong) {
FrontSelectModel fsm = new FrontSelectModel();
fsm.setKey(result.getAirlinename());
fsm.setValue(result.getAirline());
airlineList.add(fsm);
}
return airlineList;
}

 

举报

相关推荐

0 条评论