欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA動態(tài)維度笛卡爾積輸出的實現(xiàn)

 更新時間:2024年02月18日 09:35:37   作者:118路司機  
本文主要介紹了JAVA動態(tài)維度笛卡爾積輸出的實現(xiàn),通過動態(tài)生成笛卡爾積,可以方便地處理多維數(shù)據(jù)集,提高數(shù)據(jù)處理效率,具有一定的參考價值,感興趣的可以了解一下

需求

有若干個數(shù)據(jù)序列,把這些數(shù)據(jù)序列的組合全部遍歷輸出,比如提供
[“A”, “B”, “C”],[“I”, “II”], [“1”, “2”, “3”, “4”] 三個序列,能夠輸出以下結果:

A-I-1
A-I-2
A-I-3
A-I-4

C-II-2
C-II-3
C-II-4

思路

如果是是固定維度,有幾個維度,for循環(huán)幾遍即可,但是如果是不定序列,則遍歷的時候需要指定前置維度和后置維度進行計算從而遍歷到所有的數(shù)據(jù)。

public void test() {
        // 定義數(shù)據(jù)
        List<List<String>> datList = new ArrayList<>();
        datList.add(List.of("A", "B", "C"));
        datList.add(List.of("I", "II"));
        datList.add(List.of("1", "2", "3", "4"));

        // 定義總行數(shù)
        int row = datList.stream().map(List::size).reduce((a, b) -> a * b).get();

        // 定義總列數(shù)
        int size = datList.size();

        // 定義數(shù)據(jù)矩陣
        Object[][] matrix = new Object[row][size];

        // 前置維度
        int prevDim = 1;

        // 遍歷所有維度數(shù)據(jù)
        for (int i = 0; i < datList.size(); i++) {

            // 當前數(shù)據(jù)
            List<String> currDat = datList.get(i);

            // 當前數(shù)據(jù)長度
            int currDatLen = currDat.size();

            // 當前維度
            int currDim = row / prevDim;

            // 后置維度
            int nextDim = currDim / currDatLen;

            // 根據(jù)前后維度進行矩陣填充
            for (int j = 0; j < currDatLen; j++) {
                Object data = currDat.get(j);
                for (int k = 0; k < prevDim; k++) {
                    for (int m = 0; m < nextDim; m++) {
                        matrix[currDim * k + nextDim * j + m][i] = data;
                    }
                }
            }
            prevDim = prevDim * currDatLen;
        }

        // 輸出結果
        for (int i = 0; i < matrix.length; i++) {
            System.out.println(String.join("-", Arrays.stream(matrix[i]).map(Object::toString).collect(Collectors.toList())));
        }
    }

輸出結果

A-I-1
A-I-2
A-I-3
A-I-4
A-II-1
A-II-2
A-II-3
A-II-4
B-I-1
B-I-2
B-I-3
B-I-4
B-II-1
B-II-2
B-II-3
B-II-4
C-I-1
C-I-2
C-I-3
C-I-4
C-II-1
C-II-2
C-II-3
C-II-4

 到此這篇關于JAVA動態(tài)維度笛卡爾積輸出的實現(xiàn)的文章就介紹到這了,更多相關JAVA動態(tài)笛卡爾積內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring?Security實現(xiàn)基于RBAC的權限表達式動態(tài)訪問控制的操作方法

    Spring?Security實現(xiàn)基于RBAC的權限表達式動態(tài)訪問控制的操作方法

    這篇文章主要介紹了Spring?Security實現(xiàn)基于RBAC的權限表達式動態(tài)訪問控制,資源權限表達式動態(tài)權限控制在Spring Security也是可以實現(xiàn)的,首先開啟方法級別的注解安全控制,本文結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • 原來Java中有兩個ArrayList

    原來Java中有兩個ArrayList

    原來Java中有兩個ArrayList,本文就帶著大家一起探究Java中的ArrayList,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 如何將復雜SQL轉換成Java對象的實例講解

    如何將復雜SQL轉換成Java對象的實例講解

    轉換復雜SQL到Java代碼,我們需要確定數(shù)據(jù)庫連接方式和工具,使用JDBC的API來連接數(shù)據(jù)庫、執(zhí)行SQL語句,復雜SQL語句可以被拆分為多個步驟,每個步驟執(zhí)行一個特定的操作,通過將SQL語句拆分為多個步驟,我們可以更好地理解復雜SQL的邏輯,并且更容易將其轉換為Java代碼
    2024-05-05
  • java操作cookie示例(刪除cookie)

    java操作cookie示例(刪除cookie)

    這篇文章主要介紹了java操作cookie示例,包括設置Cookie、讀取Cookie、刪除Cookie,需要的朋友可以參考下
    2014-02-02
  • Java實現(xiàn)AC自動機全文檢索示例

    Java實現(xiàn)AC自動機全文檢索示例

    本篇文章主要介紹了Java實現(xiàn)AC自動機全文檢索示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 一文了解MyBatis Plus批量數(shù)據(jù)插入功能

    一文了解MyBatis Plus批量數(shù)據(jù)插入功能

    mybatisPlus底層的新增方法是一條一條的新增的,下面這篇文章主要給大家介紹了MyBatis Plus批量數(shù)據(jù)插入功能的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • 簡單了解JAVA中類、實例與Class對象

    簡單了解JAVA中類、實例與Class對象

    這篇文章主要介紹了簡單了解JAVA中類、實例與Class對象,類是面向對象編程語言的一個重要概念,它是對一項事物的抽象概括,可以包含該事物的一些屬性定義,以及操作屬性的方法,需要的朋友可以參考下
    2019-06-06
  • Java調用JavaScript實現(xiàn)字符串計算器代碼示例

    Java調用JavaScript實現(xiàn)字符串計算器代碼示例

    這篇文章主要介紹了Java調用JavaScript實現(xiàn)字符串計算器代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-12-12
  • springboot?html調用js無效400問題及解決

    springboot?html調用js無效400問題及解決

    這篇文章主要介紹了springboot?html調用js無效400的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • struts2.3.24+spring4.1.6+hibernate4.3.11+mysql5.5.25開發(fā)環(huán)境搭建圖文教程

    struts2.3.24+spring4.1.6+hibernate4.3.11+mysql5.5.25開發(fā)環(huán)境搭建圖文

    這篇文章主要介紹了struts2.3.24+spring4.1.6+hibernate4.3.11+mysql5.5.25開發(fā)環(huán)境搭建圖文教程,感興趣的小伙伴們可以參考一下
    2016-06-06

最新評論