12 8 陣列 稀疏陣列

2022-09-19 02:06:08 字數 1320 閱讀 8731

定義乙個陣列

型別 陣列名 = 初始化

記憶體分析

宣告是宣告在棧區

堆區儲存new出來的物件

靜態初始化 (不進行初始化每個int型陣列中的元素預設初始化為0,char 為\u0000 空格的unicode碼,string型為null,boolean 為false,float double 為0.0)

int a = ;

動態初始化 先宣告乙個陣列,後在使用該陣列或陣列中的某個元素時在賦值

長度確定,無法更改

元素必須為相同的型別

陣列可以為任意型別,包括基本型別和引用型別

陣列變數屬引用型別,陣列可以看作為物件,陣列中的每個元素相當於該物件的成員變數。陣列本身就是物件,j**a中的物件在堆區中,因而陣列物件本身也在堆區中。

若某個二維陣列中存在很多個相同的元素,可以採用壓縮陣列的方式來儲存非相同的陣列元素,同時節省空間。

壓縮陣列只有三列,第一行第一列的元素用來儲存原陣列的行數,第一行第二列用來儲存原陣列的列數,第一行第三列用來儲存原陣列的非相同元素的個數。**如下:

public static void main(string args) 

system.out.println();

}system.out.println("壓縮後的陣列:");

int arr2 = new int[3][3];//新陣列的行數為原陣列非零值的個數加一

arr2[0][0] = 5;//壓縮後的陣列第一行第一列記錄原陣列的行數

arr2[0][1] = 6;//第一行第二列記錄原陣列的列數

arr2[0][2] = 2;//第一行第三列記錄原陣列一共有多少個非零值

int count=0;

for(i=0;i

{for(j=0;j

{if(arr1[i][j]!=0)

{count++;

arr2[count][0] = i;

arr2[count][1] = j;

陣列轉稀疏陣列

針對於陣列轉稀疏陣列 壓縮 public static void main string args system.out.println system.out.println 稀疏陣列 將二維陣列轉換為稀疏陣列 先遍歷二維陣列 得到非0資料的個數 記錄非0資料 int sum 0 for int i...

kuangshenshuo 陣列 稀疏陣列

實現 public static void main string args system.out.println 轉換為稀疏陣列儲存 獲取有效值的個數 int sum 0 for int i 0 i 11 i system.out.println 有效值的個數 sum 2.建立乙個稀疏陣列的陣列並...

普通陣列轉化稀疏陣列

package sparsearray create by author luozhiyuan qq 707530775 qq.com on 2019 08 04.time 23 44 public class sparsearray system.out.println public static...