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

Java 輕松實現二維數組與稀疏數組互轉

 更新時間:2022年04月08日 15:52:42   作者:汪汪程序員  
在某些應用場景中需要大量的二維數組來進行數據存儲,但是二維數組中卻有著大量的無用的位置占據著內存空間,稀疏數組就是為了優(yōu)化二維數組,節(jié)省內存空間

二維數組

二維數組本質上是以數組作為數組元素的數組,即“數組的數組”,類型說明符 數組名[常量表達式][常量表達式]。二維數組又稱為矩陣,行列數相等的矩陣稱為方陣。對稱矩陣a[i][j] = a[j][i],對角矩陣:n階方陣主對角線外都是零元素。

稀疏數組

1、稀疏算法的基本介紹

當一個數組中大部分元素為0,或者為同一個值的數組時,可以使用稀疏數組來保存該數組。從而減少計算機不必要的內存開銷。

2、稀疏算法的處理方式

(1)數組中第一行記錄原始數組中一共有幾行幾列,有多少個不同的值。
(2)把具有不同值的元素的行列及值記錄在一個小規(guī)模的數組中,從而縮小程序的規(guī)模。

二維數組轉稀疏數組的思路

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

稀疏數組轉原始的二維數組的思路:

  • 先讀取稀疏數組的第一行,根據第一行的數據,創(chuàng)建原始的二維數組,比如上面的chessArr2=int[11][11]
  • 再讀取稀疏數組后幾行的數據,并賦給原始的二維數組即可

寫一個二維數組:

//1.創(chuàng)建一個二維數組
int chessArr1[][]=new int[11][11];
//2.給二維數組賦值
chessArr1[1][2]=1;
chessArr1[2][3]=2;
//3.雙重for循環(huán)輸出二維數組
System.out.println("原始的二維數組:");
for (int[] row : chessArr1) {
    for (int data : row) {
        System.out.printf("%d\t",data);
    }
    //每輸出完一個一重數組換一行
    System.out.println();
}

將二維數組換換位稀疏數組

//將二維數組轉稀疏數組
//1.先遍歷二維數組,得到非0數據的個數,知道數據個數,就可以創(chuàng)建稀疏數組(知道了稀疏數組的行)
int sum=0;
for (int i = 0; i < 11; i++) {
    for (int j = 0; j < 11; j++) {
        if (chessArr1[i][j]!=0){
            sum++;
        }
    }
}
System.out.println("有效值的個數為:"+sum);
//2.創(chuàng)立對應的稀疏數組
int sparseArr[][]=new int[sum+1][3];
//3.給稀疏數組賦值
sparseArr[0][0]=11;
sparseArr[0][1]=11;
sparseArr[0][2]=sum;
//4.遍歷二維數組,給稀疏數組
int count=0;//用于記錄是第幾行
for (int i = 0; i < 11; i++) {
    for (int j = 0; j < 11; j++) {
        if (chessArr1[i][j]!=0){
            sparseArr[count+1][0]=i;
            sparseArr[count+1][1]=j;
            sparseArr[count+1][2]=chessArr1[i][j];
            count++;
        }
    }
}
//5.輸出稀疏數組
//以下是兩種遍歷方式:
/*for (int[] ints : sparseArr) {
    for (int anInt : ints) {
        System.out.printf("%d\t",anInt);
    }
    //把一個數組遍歷完之后換一行
    System.out.println();
}*/
System.out.println("得到稀疏數組為~~~~~");
for (int i = 0; i < sparseArr.length; i++) {
    System.out.printf("%d\t%d\t%d\t\n",sparseArr[i][0],sparseArr[i][1],sparseArr[i][2]);
}

將稀疏數組還原為二維數組

//把稀疏數組還原為二維數組
//1.創(chuàng)建二維數組
int chessArr2[][]=new int[sparseArr[0][0]][sparseArr[0][1]];
//2.給二維數組賦值
for (int i = 1; i < sparseArr.length; i++) {
    chessArr2[sparseArr[i][0]][sparseArr[i][1]]=sparseArr[i][2];
}
//3.輸出二維數組
for (int[] row : chessArr2) {
    for (int data : row) {
        System.out.printf("%d\t",data);
    }
    System.out.println();
}

樹越是向往高處的光亮,它的根就越要向下,向泥土向黑暗的深處。

到此這篇關于Java 輕松實現二維數組與稀疏數組互轉的文章就介紹到這了,更多相關Java 數組轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring事務的七種傳播行為

    Spring事務的七種傳播行為

    這篇文章主要介紹了Spring事務的七種傳播行為,文章圍繞主題的相關資料展開詳細的內容解說,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • SpringCloud微服務熔斷器使用詳解

    SpringCloud微服務熔斷器使用詳解

    這篇文章主要介紹了Spring Cloud Hyxtrix的基本使用,它是Spring Cloud中集成的一個組件,在整個生態(tài)中主要為我們提供服務隔離,服務熔斷,服務降級功能,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • springboot如何配置多kafka

    springboot如何配置多kafka

    這篇文章主要介紹了springboot如何配置多kafka問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Spring框架對于Bean的管理詳解

    Spring框架對于Bean的管理詳解

    在實際開發(fā)中,我們往往要用到Spring容器為我們提供的諸多資源,例如想要獲取到容器中的配置、獲取到容器中的Bean等等。本文為大家詳細講講工具類如何獲取到Spring容器中的Bean,需要的可以參考一下
    2022-07-07
  • 通俗講解JVM的類加載機制

    通俗講解JVM的類加載機制

    這篇文章主要介紹了JVM的類加載機制的相關資料,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下
    2020-09-09
  • SpringBoot+SpringSecurity處理Ajax登錄請求問題(推薦)

    SpringBoot+SpringSecurity處理Ajax登錄請求問題(推薦)

    這篇文章主要介紹了SpringBoot+SpringSecurity處理Ajax登錄請求問題,本文給大家介紹的非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-12-12
  • 關于RestTemplate中的Get請求

    關于RestTemplate中的Get請求

    這篇文章主要介紹了關于RestTemplate中的Get請求,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 與眾不同的 Java 日期格式化大全

    與眾不同的 Java 日期格式化大全

    這篇文章主要介紹了與眾不同的 Java 日期格式化大全,在 Java 中,經常要將時間字符串轉換為日期,或者要將日期轉換為時間字符串。,需要的朋友可以參考下
    2019-06-06
  • Centos7.3下jre1.8安裝和配置教程

    Centos7.3下jre1.8安裝和配置教程

    這篇文章主要為大家詳細介紹了Centos7.3下jre1.8安裝和配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Java中接口的深入詳解

    Java中接口的深入詳解

    在Java語言中,接口由類來實現以便使用接口中的方法,這篇文章主要給大家介紹了關于Java中接口的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-11-11

最新評論