Rumah >Java >javaTutorial >Bagaimana untuk Mengira Produk Cartesan Berbilang Set di Jawa?
Menentukan hasil Cartesian dua atau lebih set ialah tugas biasa dalam pengaturcaraan. Begini cara untuk melaksanakan operasi ini menggunakan perpustakaan Java.
Pendekatan Rekursif
Untuk bilangan set yang sewenang-wenangnya, pendekatan rekursif boleh digunakan. Kaedah cartesianProduct menerima tatasusunan set sebagai hujah. Ia menyemak sama ada bilangan set adalah sah dan meneruskan dengan langkah berikut:
Kod Contoh:
public static Set<Set<Object>> cartesianProduct(Set<?>... sets) { if (sets.length < 2) throw new IllegalArgumentException("Can't have a product of fewer than two sets (got " + sets.length + ")"); return _cartesianProduct(0, sets); } private static Set<Set<Object>> _cartesianProduct(int index, Set<?>... sets) { Set<Set<Object>> ret = new HashSet<>(); if (index == sets.length) { ret.add(new HashSet<>()); } else { for (Object obj : sets[index]) { for (Set<Object> set : _cartesianProduct(index + 1, sets)) { set.add(obj); ret.add(set); } } } return ret; }
Nota: Ini pendekatan menjamin produk Cartesian untuk sebarang bilangan set tetapi tidak dapat mengekalkan maklumat jenis generik kerana pengehadan Java.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Produk Cartesan Berbilang Set di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!