java 返回ProjectCode 和PowerSeries 不存在交集的数组 List<BizPowerInstituteEnergyStatisticsDetail> lists = new ArrayList<>(); List<BizPowerInstituteEnergyStatisticsDetail> list2 = new ArrayList<>(); BizPowerInstituteEnergyStatisticsDetail pds =new BizPowerInstituteEnergyStatisticsDetail(); pds.setProjectCode("12121"); pds.setPowerSeries("测试"); pds.setHours(null); lists.add(pds); BizPowerInstituteEnergyStatisticsDetail pds1 =new BizPowerInstituteEnergyStatisticsDetail(); pds1.setProjectCode("121213"); pds1.setPowerSeries("测试2"); lists.add(pds1); BizPowerInstituteEnergyStatisticsDetail pds3 =new BizPowerInstituteEnergyStatisticsDetail(); pds3.setProjectCode("12121"); pds3.setPowerSeries("测试2"); pds3.setHours(new BigDecimal(1)); list2.add(pds3);
时间: 2023-11-22 18:56:29 浏览: 33
可以使用 Java 8 的 Stream API 来实现该需求。首先,将两个列表合并为一个列表,然后使用 filter() 方法过滤掉那些 ProjectCode 和 PowerSeries 都相同的元素,最后将结果转换为 List 类型。
示例代码如下:
```
List<BizPowerInstituteEnergyStatisticsDetail> mergedList = Stream.concat(lists.stream(), list2.stream())
.filter(p -> lists.stream().noneMatch(q -> q.getProjectCode().equals(p.getProjectCode()) && q.getPowerSeries().equals(p.getPowerSeries())))
.collect(Collectors.toList());
```
这里使用了 concat() 方法将两个列表合并为一个,然后使用 filter() 方法过滤掉那些 ProjectCode 和 PowerSeries 都相同的元素,最后使用 collect() 方法将结果转换为 List 类型。
相关问题
ArrayList<Object> lists = new ArrayList<String>(); ArrayList<String> lists = new ArrayList<Object>(); 如何使用泛型通配符?将错误的语句修改正确
使用泛型通配符来解决这个问题可以这样写:
ArrayList<?> lists = new ArrayList<String>();
ArrayList<String> lists = new ArrayList<String>();
或者这样写:
ArrayList<? extends Object> lists = new ArrayList<String>();
ArrayList<String> lists = new ArrayList<String>();
请注意,这两种写法编译器可以通过,但是第一种写法中的 `lists` 对象不能添加任何元素。
下面五条语句中,错误的有_______________________________________________。 (1)ArrayList<String> lists = new ArrayList<String>(); (2)ArrayList<Object> lists = new ArrayList<String>(); (3)ArrayList<String> lists = new ArrayList<Object>(); (4)ArrayList<String> lists = new ArrayList(); (5)ArrayList lists = new ArrayList<String>();
错误的语句是:(2)ArrayList<Object> lists = new ArrayList<String>(),(3)ArrayList<String> lists = new ArrayList<Object>(),(4)ArrayList<String> lists = new ArrayList()和(5)ArrayList lists = new ArrayList<String>()。