最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)二維數(shù)組和稀疏數(shù)組之間的轉(zhuǎn)換

 更新時(shí)間:2021年06月27日 16:21:01   作者:nsq1101  
本文主要介紹了Java 二維數(shù)組和稀疏數(shù)組轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

用Java實(shí)現(xiàn)二維數(shù)據(jù)和稀疏數(shù)組之間的轉(zhuǎn)換

1. 需求和思路分析

1.1 以二維數(shù)組的格式模擬棋盤(pán)、地圖等類(lèi)似的二維結(jié)構(gòu)為基礎(chǔ),與稀疏數(shù)組之間進(jìn)行轉(zhuǎn)化。

1.2 思路分析

二維數(shù)組轉(zhuǎn)化為稀疏數(shù)組

  • 遍歷原始的二維數(shù)組,得到有效數(shù)據(jù)個(gè)數(shù) sum
  • 根據(jù)sum就可以創(chuàng)建稀疏數(shù)組sparseArr int[sunm+1][3]
  • 將二維數(shù)組的有效數(shù)據(jù)存入到稀疏數(shù)組

稀疏數(shù)組轉(zhuǎn)為二維數(shù)組

  • 先讀取稀疏數(shù)組的第一行,根據(jù)第一行的數(shù)據(jù),創(chuàng)建原始的二維數(shù)組
  • 再讀取稀疏數(shù)組后幾行的數(shù)據(jù),并賦給原始的二維數(shù)組即可。

2.代碼實(shí)現(xiàn)和展示

2.1 二維數(shù)組與稀疏數(shù)組之間的轉(zhuǎn)化程序

public class SparseArr {

    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)原始的二維數(shù)組 11 * 11
        // 0: 沒(méi)有棋子;1:黑棋;2:白棋
        int[][] chessArr = new int[11][11];
        chessArr[1][2] = 1;
        chessArr[2][3] = 2;
        chessArr[2][6] = 1;

        // 打印輸出原始二維數(shù)組
        System.out.print("原始二維數(shù)組為:\n");
        for(int[] a : chessArr ){
            for (int item : a ){
                System.out.printf( "%d\t", item );
            }
            System.out.println();

        }

        //將二維數(shù)組轉(zhuǎn)換為稀疏數(shù)組思路
        // 1、遍歷二維數(shù)組,統(tǒng)計(jì)有效數(shù)據(jù)的個(gè)數(shù)sum
        int sum = 0;
        for(int i=0;i < chessArr.length;i++){
            for(int j=0;j < chessArr[0].length;j++){
                if(chessArr[i][j] != 0){
                    sum++;
                }
            }
        }
        System.out.println("有效數(shù)據(jù)的個(gè)數(shù)為:" + sum);

        //2、建立稀疏數(shù)組,行列值
        int[][] sparseArr = new int[sum+1][3];

        //3、遍歷原始二維數(shù)組轉(zhuǎn)換為稀疏數(shù)組中的數(shù)據(jù)
        sparseArr[0][0] = 11;
        sparseArr[0][1] = 11;
        sparseArr[0][2] = sum;

        int count=1;
        for(int i=0;i < 11;i++){
            for(int j=0;j < 11;j++){
                if(chessArr[i][j] != 0){
                    sparseArr[count][0] = i;
                    sparseArr[count][1] = j;
                    sparseArr[count][2] = chessArr[i][j];
                    count++;
                }
            }
        }

        //4 輸出稀疏數(shù)組
        System.out.println("稀疏數(shù)組為:");
        for (int[] row : sparseArr) {
        //     for (int data : row) {
        //         System.out.printf( "%d\t",data);  
        //     }
        //     System.out.println();  
        // }
    
            System.out.printf("%d\t%d\t%d\t\n", row[0],row[1],row[2]);
        }

        // 將稀疏數(shù)組轉(zhuǎn)化為二維數(shù)組
        // 1.讀取稀疏數(shù)組首行數(shù)據(jù),建立二維數(shù)組
        int[][] chessArr2 = new  int[sparseArr[0][0]][sparseArr[0][1]];

        // 2. 遍歷稀疏數(shù)組,賦值給二維數(shù)組
        for (int i=1;i < sparseArr.length;i++) {
            chessArr2[sparseArr[1][0]][sparseArr[1][1]] = sparseArr[i][2];
        }
        
        // 3. 打印輸出原始的二維數(shù)組
        System.out.print("原始二維數(shù)組為:\n");
        for (int[] row : chessArr2) {
            for (int data : row) {
                System.out.printf("%d\t", data); 
            }
            System.out.println();
        }
    } 
}

2.2 二維數(shù)組轉(zhuǎn)化為稀疏數(shù)組展示

原始二維數(shù)組為:
0       0       0       0       0       0       0       0       0       0       0
0       0       1       0       0       0       0       0       0       0       0
0       0       0       2       0       0       1       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
有效數(shù)據(jù)的個(gè)數(shù)為:3
稀疏數(shù)組為:
11      11      3
1       2       1
2       3       2
2       6       1
原始二維數(shù)組為:
0       0       0       0       0       0       0       0       0       0       0
0       0       1       0       0       0       0       0       0       0       0
0       0       0       2       0       0       1       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0

3. 總結(jié)

用Java語(yǔ)言實(shí)現(xiàn)二者之間的轉(zhuǎn)化,思路很重要,按著思路寫(xiě)代碼就會(huì)很省事,難的點(diǎn)可能是不知道如何寫(xiě)代碼。
注意:printf 和 print 輸出的格式不同。

參考視頻

尚硅谷Java數(shù)據(jù)結(jié)構(gòu)與java算法(Java數(shù)據(jù)結(jié)構(gòu)與算法)

到此這篇關(guān)于Java實(shí)現(xiàn)二維數(shù)組和稀疏數(shù)組之間的轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Java 二維數(shù)組和稀疏數(shù)組轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java awt實(shí)現(xiàn)計(jì)算器功能

    java awt實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了java awt實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Java移動(dòng)文件夾及其所有子文件與子文件夾

    Java移動(dòng)文件夾及其所有子文件與子文件夾

    這篇文章主要為大家詳細(xì)介紹了Java移動(dòng)文件夾及其所有子文件與子文件夾的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 基于jvm java內(nèi)存區(qū)域的介紹

    基于jvm java內(nèi)存區(qū)域的介紹

    下面小編就為大家?guī)?lái)一篇基于jvm java內(nèi)存區(qū)域的介紹。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • springIoc及注解的使用實(shí)例詳解

    springIoc及注解的使用實(shí)例詳解

    注解(Annotation)是一種在 Java 程序中以元數(shù)據(jù)的形式對(duì)代碼進(jìn)行標(biāo)記和說(shuō)明的機(jī)制,它可以被添加到類(lèi)、方法、字段、參數(shù)等程序元素上,用于提供額外的信息和指示,本文給大家介紹springIoc及注解的使用,感興趣的朋友一起看看吧
    2024-02-02
  • Java實(shí)現(xiàn)仿淘寶滑動(dòng)驗(yàn)證碼研究代碼詳解

    Java實(shí)現(xiàn)仿淘寶滑動(dòng)驗(yàn)證碼研究代碼詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)仿淘寶滑動(dòng)驗(yàn)證碼研究代碼詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • java中Swing會(huì)奔跑的線(xiàn)程俠

    java中Swing會(huì)奔跑的線(xiàn)程俠

    本文通過(guò)代碼示例給大家詳細(xì)講解了java中Swing會(huì)奔跑的線(xiàn)程俠這個(gè)經(jīng)典的示例,有興趣的朋友學(xué)習(xí)下。
    2018-03-03
  • Java可變個(gè)數(shù)形參的方法實(shí)例代碼

    Java可變個(gè)數(shù)形參的方法實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Java可變個(gè)數(shù)形參的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Java?深入理解創(chuàng)建型設(shè)計(jì)模式之抽象工廠模式

    Java?深入理解創(chuàng)建型設(shè)計(jì)模式之抽象工廠模式

    當(dāng)系統(tǒng)所提供的工廠所需生產(chǎn)的具體產(chǎn)品并不是一個(gè)簡(jiǎn)單的對(duì)象,而是多個(gè)位于不同產(chǎn)品等級(jí)結(jié)構(gòu)中屬于不同類(lèi)型的具體產(chǎn)品時(shí)需要使用抽象工廠模式,抽象工廠模式是所有形式的工廠模式中最為抽象和最具一般性的一種形態(tài)
    2022-02-02
  • java實(shí)現(xiàn)后臺(tái)處理base64圖片還原為文件

    java實(shí)現(xiàn)后臺(tái)處理base64圖片還原為文件

    這篇文章主要介紹了java實(shí)現(xiàn)后臺(tái)處理base64圖片還原為文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 徹底搞懂Java多線(xiàn)程(三)

    徹底搞懂Java多線(xiàn)程(三)

    這篇文章主要給大家介紹了關(guān)于Java面試題之多線(xiàn)程和高并發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07

最新評(píng)論

桃源县| 抚宁县| 青河县| 乳山市| 赤水市| 米易县| 光泽县| 宜城市| 太和县| 蛟河市| 赞皇县| 榆社县| 内江市| 平顶山市| 洪泽县| 嵊州市| 佛教| 滨州市| 金昌市| 基隆市| 西昌市| 沙洋县| 香河县| 柳江县| 新田县| 宝兴县| 盐城市| 彭水| 富源县| 信宜市| 呼玛县| 六安市| 安仁县| 嘉兴市| 台州市| 阿拉尔市| 赤壁市| 晴隆县| 冀州市| 桐柏县| 永仁县|