在java中,有个List<PassengerDetailInfo> notifyInfoCCDetail集合,现在将其中的passengerPhoneNbr,ecifPhoneNbr,agentPhoneNbr,customPhoneNbr,chnName,oldFltNbr,oldFltDt,字段,现在有个需求,将passengerPhoneNbr,ecifPhoneNbr,agentPhoneNbr,customPhoneNbr,拼接用;隔开,组成一个新字段,将这个字段去重之后与chnName,oldFltNbr,oldFltDt一起添加到 List<PassengerDetailInfoPhoneNbr> phoneList新集合中,将完整代码展示出来
时间: 2024-03-27 17:39:26 浏览: 52
Java8 将List<Integer> 转换成以逗号分割的String字符串
好的,以下是示例代码:
```java
List<PassengerDetailInfo> notifyInfoCCDetail = new ArrayList<>();
// 假设已经将数据添加到 notifyInfoCCDetail 中
// 定义新的集合
List<PassengerDetailInfoPhoneNbr> phoneList = new ArrayList<>();
// 遍历 notifyInfoCCDetail
for (PassengerDetailInfo passengerDetailInfo : notifyInfoCCDetail) {
// 拼接电话号码字段
String phoneNbr = passengerDetailInfo.getPassengerPhoneNbr() + ";" +
passengerDetailInfo.getEcifPhoneNbr() + ";" +
passengerDetailInfo.getAgentPhoneNbr() + ";" +
passengerDetailInfo.getCustomPhoneNbr();
// 去重
Set<String> phoneNbrSet = new HashSet<>(Arrays.asList(phoneNbr.split(";")));
// 创建新的对象
PassengerDetailInfoPhoneNbr phoneNbrInfo = new PassengerDetailInfoPhoneNbr();
phoneNbrInfo.setPhoneNbr(StringUtils.join(phoneNbrSet, ";"));
phoneNbrInfo.setChnName(passengerDetailInfo.getChnName());
phoneNbrInfo.setOldFltNbr(passengerDetailInfo.getOldFltNbr());
phoneNbrInfo.setOldFltDt(passengerDetailInfo.getOldFltDt());
// 添加到集合中
phoneList.add(phoneNbrInfo);
}
```
其中,`PassengerDetailInfo` 和 `PassengerDetailInfoPhoneNbr` 是自定义的对象,需要根据实际情况进行定义。同时,需要引入 `java.util.HashSet` 和 `org.apache.commons.lang3.StringUtils` 两个类。
阅读全文