[ad_1]
我有两个都有数据的数组,我想要做的是循环遍历每个数组并比较数组之间的数据,一个数组来自 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. }
如果没有更多信息,我真的无法为您提供更优化的解决方案。
[ad_2]
コメント