[ad_1]
Saya memiliki dua array yang keduanya memiliki data, yang ingin saya lakukan adalah mengulang setiap array dan membandingkan data antara array. Satu array berasal dari Metode Post dan array lain memiliki data dari database, jadi perbandingannya harus menjadi dilakukan untuk memeriksa apakah data ada dalam database untuk diperbarui, jika tidak maka harus dimasukkan sebagai catatan baru.
Apa yang saya coba:
Di bawah ini adalah cuplikan kode saya
@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 }
Solusi 1
Karena saya tidak tahu seperti apa Order itu, saya akan membuat beberapa asumsi dalam jawaban ini. Asumsi besar yang akan saya buat adalah Anda memiliki nilai id Integer di kelas, yang bisa saya peroleh menggunakan getId();. Saya juga akan berasumsi bahwa nilainya tetap – dengan kata lain, setelah id diterapkan, itu sepenuhnya tidak dapat diubah dan itulah nilai yang akan disimpan ke database.
Sekarang, jika Anda benar-benar harus mendapatkan data seperti ini, maka saya akan menggunakan kemampuan filter di Java. Sesuatu seperti ini:
private Optional<Order> findOrder(List<Order> orders, Order order) { return orders.stream().filter(f -> f.getId() == order.getId()).findAny(); }
Kemudian Anda akan memanggil ini di dalam loop Anda seperti ini
Optional<Order> foundOrder = findOrder(orderData, data); if (foundData.isPresent()) { // Do whatever you need to with this missing record. }
Tanpa informasi lebih lanjut, saya tidak bisa memberi Anda solusi yang lebih optimal.
[ad_2]
コメント