如何循环并比较 Spring Boot 中两个数组之间存在的数据

编程


我有两个都有数据的数组,我想要做的是循环遍历每个数组并比较数组之间的数据,一个数组来自 Post 方法,另一个数组包含来自数据库的数据,因此比较必须是完成检查数据是否存在于要更新的​​数据库中,否则应将其作为新记录插入。

我尝试过的:

下面是我的代码快照

@Autowired
private OrderRepository orderRepository; 


public void process_data(String ordercode, List<Order> order) {
                
List<Order> orderList = new ArrayList<>(); 
List<Order> orderData = orderRepository.findOrder(ordercode);

// here is where I want to compare the data between two array lists of order and orderData
   using a for loop

for(var data : order) {  // here is only one array present how can I add the second array list so that I can compare the data present between the two array lists

}

解决方案1

由于我不知道 Order 是什么样的,所以我将在这个答案中做出一些假设。 我要做的一个重要假设是,类中有一个 Integer id 值,我可以使用 getId(); 获取该值。 我还将假设该值是固定的 – 换句话说,一旦应用了 id,它就完全不可变,并且这就是将保存到数据库的值。

现在,如果您确实需要像这样获取数据,那么我会考虑使用 Java 中的过滤功能。 像这样的东西:

爪哇
private Optional<Order> findOrder(List<Order> orders, Order order) {
  return orders.stream().filter(f -> f.getId() == order.getId()).findAny();
}

然后你可以像这样在循环中调用它

爪哇
Optional<Order> foundOrder = findOrder(orderData, data);
if (foundData.isPresent()) {
  // Do whatever you need to with this missing record.
}

如果没有更多信息,我真的无法为您提供更优化的解决方案。

コメント

タイトルとURLをコピーしました