[ad_1]
両方ともデータを持つ 2 つの配列があります。私がやりたいのは、各配列をループして配列間のデータを比較することです。1 つの配列は Post メソッドから取得され、もう 1 つの配列にはデータベースからのデータがあるため、比較は次のように行う必要があります。更新するデータがデータベースに存在するかどうかを確認するために実行されます。存在しない場合は、新しいレコードとして挿入する必要があります。
私が試したこと:
以下は私のコードのスナップショットです
@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 がどのようなものであるかわからないため、この回答ではいくつかの仮定を立てます。 ここでの大前提は、クラス内に整数 ID 値があり、getId(); を使用して取得できるということです。 また、値が固定されていると仮定します。つまり、ID が適用されると完全に不変となり、それがデータベースに保存される値になります。
さて、本当にこのようにデータを取得する必要がある場合は、Java のフィルター機能を使用することを検討します。 このようなもの:
Java
private Optional<Order> findOrder(List<Order> orders, Order order) { return orders.stream().filter(f -> f.getId() == order.getId()).findAny(); }
次に、これをループ内で次のように呼び出します
Java
Optional<Order> foundOrder = findOrder(orderData, data); if (foundData.isPresent()) { // Do whatever you need to with this missing record. }
詳しい情報がなければ、より最適化された解決策を提供することはできません。
[ad_2]
コメント