¿Cómo puedo hacer un bucle y comparar los datos presentes entre dos matrices en Spring Boot?

programación


Tengo dos matrices que tienen datos, lo que quiero hacer es recorrer cada matriz y comparar los datos entre las matrices, una matriz proviene del método de publicación y otra matriz tiene datos de la base de datos, por lo que la comparación debe ser Esto se hace para verificar si los datos están presentes en la base de datos para actualizarlos; de lo contrario, deben insertarse como un nuevo registro.

Lo que he probado:

A continuación se muestra la instantánea de mi código.

@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

}

Solución 1

Como no sé cómo es el Orden, haré algunas suposiciones en esta respuesta. La gran suposición que voy a hacer es que tienes un valor de identificación entero en la clase, que puedo obtener usando getId();. También voy a suponer que el valor es fijo; en otras palabras, una vez que se ha aplicado la identificación, es completamente inmutable y ese es el valor que se guardará en la base de datos.

Ahora, si realmente necesita obtener sus datos de esta manera, entonces buscaría usar la capacidad de filtro en Java. Algo como esto:

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

Entonces llamarías a esto dentro de tu bucle así

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

Sin más información, realmente no puedo ofrecerle una solución más optimizada.

コメント

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