Làm cách nào tôi có thể lặp và so sánh dữ liệu hiện có giữa hai mảng trong spring boot

lập trình

[ad_1]

Tôi có hai mảng đều có dữ liệu, điều tôi muốn làm là lặp qua từng mảng và so sánh dữ liệu giữa các mảng, một mảng đến từ Phương thức đăng và một mảng khác có dữ liệu từ cơ sở dữ liệu, vì vậy việc so sánh phải là được thực hiện để kiểm tra xem dữ liệu có trong cơ sở dữ liệu để được cập nhật hay không, dữ liệu đó sẽ được chèn dưới dạng bản ghi mới.

Những gì tôi đã thử:

Dưới đây là ảnh chụp mã của tôi

@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

}

Giải pháp 1

Vì tôi không biết Đơn hàng trông như thế nào nên tôi sẽ đưa ra một số giả định trong câu trả lời này. Giả định lớn mà tôi sắp đưa ra là bạn có giá trị id Số nguyên trong lớp mà tôi có thể nhận được bằng cách sử dụng getId();. Tôi cũng sẽ giả định rằng giá trị là cố định – nói cách khác, khi id đã được áp dụng, nó hoàn toàn không thể thay đổi và đó là giá trị sẽ được lưu vào cơ sở dữ liệu.

Bây giờ, nếu bạn thực sự phải lấy dữ liệu của mình như thế này thì tôi sẽ tìm cách sử dụng khả năng lọc trong Java. Một cái gì đó như thế này:

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

Sau đó, bạn sẽ gọi cái này trong vòng lặp của mình như thế này

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

Nếu không có thêm thông tin, tôi thực sự không thể cung cấp cho bạn giải pháp tối ưu hơn.

[ad_2]

コメント

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