91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java多個list排列組合的方法是什么

小億
181
2023-12-16 01:21:37
欄目: 編程語言

在Java中,可以使用遞歸來實現多個List的排列組合。

以下是一個示例代碼,用于實現兩個List的排列組合:

import java.util.ArrayList;
import java.util.List;

public class Combination {

    public static void main(String[] args) {
        List<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);

        List<Integer> list2 = new ArrayList<>();
        list2.add(4);
        list2.add(5);

        List<List<Integer>> result = combination(list1, list2);
        for (List<Integer> combination : result) {
            System.out.println(combination);
        }
    }

    public static List<List<Integer>> combination(List<Integer> list1, List<Integer> list2) {
        List<List<Integer>> result = new ArrayList<>();

        if (list1.isEmpty()) {
            result.add(new ArrayList<>(list2));
            return result;
        }

        if (list2.isEmpty()) {
            result.add(new ArrayList<>(list1));
            return result;
        }

        int firstElement = list1.get(0);
        List<Integer> restOfList1 = list1.subList(1, list1.size());

        List<List<Integer>> combinationsWithoutFirstElement = combination(restOfList1, list2);
        for (List<Integer> combination : combinationsWithoutFirstElement) {
            List<Integer> newCombination = new ArrayList<>();
            newCombination.add(firstElement);
            newCombination.addAll(combination);
            result.add(newCombination);
        }

        List<Integer> restOfList2 = list2.subList(1, list2.size());
        List<List<Integer>> combinationsWithoutFirstElementInList2 = combination(list1, restOfList2);
        result.addAll(combinationsWithoutFirstElementInList2);

        return result;
    }
}

在以上代碼中,我們首先定義了兩個List:list1和list2。然后,我們調用combination方法對這兩個List進行排列組合,并將結果保存在一個List<List>中。最后,我們遍歷結果列表,并打印出每一組排列組合。

請注意,此代碼中的combination方法使用遞歸來實現排列組合。它首先檢查兩個列表中是否有一個為空,如果是,則將另一個列表的元素添加到結果列表中,并返回結果。否則,它取出列表中的第一個元素,將其與遞歸調用返回的每個排列組合進行組合,并將結果添加到結果列表中。

在實際應用中,您可以根據需要修改combination方法,以處理任意數量的列表。

0
琼海市| 建始县| 屏边| 乌拉特中旗| 宁远县| 饶平县| 九寨沟县| 含山县| 澜沧| 平顶山市| 黄大仙区| 新安县| 大埔区| 武宁县| 安宁市| 准格尔旗| 鹤山市| 云阳县| 通州区| 崇义县| 湘潭县| 淮阳县| 石城县| 登封市| 安图县| 保定市| 特克斯县| 宕昌县| 定边县| 当阳市| 台江县| 揭西县| 阳泉市| 宜兰县| 盐池县| 香河县| 定兴县| 浏阳市| 灯塔市| 丹江口市| 中超|