Rumah  >  Artikel  >  Java  >  Bagaimana untuk Menjana Semua Kemungkinan Gabungan Unik daripada Pelbagai Senarai di Jawa?

Bagaimana untuk Menjana Semua Kemungkinan Gabungan Unik daripada Pelbagai Senarai di Jawa?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 19:57:02307semak imbas

How to Generate All Possible Unique Combinations from Multiple Lists in Java?

Penjana Gabungan Senarai Berbilang di Java

Soalan:

Diberi nombor senarai yang berubah-ubah panjang sewenang-wenangnya, hasilkan satu senarai yang mengandungi semua kemungkinan gabungan unik elemen merentas semua senarai input. Sebagai contoh, senarai yang diberikan:

X: [A, B, C] 
Y: [W, X, Y, Z]

fungsi harus menghasilkan 12 kombinasi:

[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]

Jawapan:

Masalah ini memerlukan pendekatan rekursif:

<code class="java">void generatePermutations(List<List<Character>> lists, List<String> result, int depth, String current) {
    if (depth == lists.size()) {
        result.add(current);
        return;
    }

    for (int i = 0; i < lists.get(depth).size(); i++) {
        generatePermutations(lists, result, depth + 1, current + lists.get(depth).get(i));
    }
}</code>

Untuk menggunakan fungsi ini:

<code class="java">List<List<Character>> lists = new ArrayList<>();
lists.add(Arrays.asList('A', 'B', 'C'));
lists.add(Arrays.asList('W', 'X', 'Y', 'Z'));

List<String> result = new ArrayList<>();
generatePermutations(lists, result, 0, "");</code>

Atas ialah kandungan terperinci Bagaimana untuk Menjana Semua Kemungkinan Gabungan Unik daripada Pelbagai Senarai di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn