數組(array)是一組類型相同的變量的集合可以通過一個公共的名稱來訪問其中的變量它具有一個特殊的性質作為對象來應用
一維數組
聲明形式type[] arrayname=new type[size]
注區分C與C++方括號是在類型的後邊而不是在數組名稱的後邊
初始化數組
int[] nums = new int[];
int[] nums;
nums = new int[];
int[] nums = {}; //等價下邊
int[] nums = new int[]{}; //new int[]可省略
int[] nums;
nums = new int[]{}; //new int[]不可省略
=========================
多維數組
聲明方式
type[] arrayname = new type[sizesizesizeN];
注區分CC++Java多維數組是在方括號內以逗號區分而不是以多個方括號區分
初始化
int[] multidim = new int[];
type[] arrayname={
{valval}
{valval}
{valval}
}
如class Squares
{
public static void Main()
{
int[] sqrs={
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
};
int ij;
for(i=;i<i++)
{
for(j=;j<;j++)
ConsoleWrite(sqrs[ij]+ );
ConsoleWriteLine();
}
}
}
非齊整數組
聲明方式
type[][] arrayname = new type[size][]
注意指聲明行數聲明維數
如
int[][] jagged = new int[][];
jagged[] =new int[];
jagged[] =new int[];
jagged[] =new int[];
數組擴展
數組的賦值引用
代碼
class AssignARef{
public static void Main(){
static void Main(string[] args)
{
int i;
int[] nums = new int[];
int[] nums = new int[];
for (i = ; i < ; i++) nums[i] = i;
for (i = ; i < ; i++) nums[i] = i;
ConsoleWrite(Here is nums:);
for (i = ; i < ; i++)
ConsoleWrite(nums[i] + );
ConsoleWriteLine();
ConsoleWrite(Here is nums:);
for (i = ; i < ; i++)
ConsoleWrite(nums[i] + );
ConsoleWriteLine();
nums = nums; //將nums引用賦值給nums
ConsoleWrite(Here is nums after assignment:);
for (i = ; i < ; i++)
ConsoleWrite(nums[i] + );
ConsoleWriteLine();
//現在就可以通過nums數組來操作nums數組了
nums[] = ;
ConsoleWrite(Here is nums after change through nums:);
for (i = ; i < ; i++)
ConsoleWrite(nums[i] + );
ConsoleWriteLine();
ConsoleReadKey();
}
}
}
運行結果
如結果所示將nums賦值給nums後兩個數組引用變量都將指向相同對象
非齊整數組的Length屬性
當Length屬性用於非齊整數組時會出現一些特殊情況此時可以獲得每個單獨數組的長度
一下程序是模擬個節點的網絡中的CPU占用情況
代碼
class Jagged
{
static void Main(string[] args)
{
int[][] network_nodes = new int[][];
network_nodes[] = new int[];
network_nodes[] = new int[];
network_nodes[] = new int[];
network_nodes[] = new int[];
int i j;
for (i = ; i < network_nodesLength; i++)
for (j = ; j < network_nodes[i]Length; j++)
network_nodes[i][j] = i * j + ;
ConsoleWriteLine(Total number of network nodes: + network_nodesLength + \n);
for (i = ; i < network_nodesLength; i++)
{
for (j = ; j < network_nodes[i]Length; j++)
{
ConsoleWrite(CPU usage at node + i + CPU + j + : );
ConsoleWrite(network_nodes[i][j] + % );
ConsoleWriteLine();
}
ConsoleWriteLine();
}
ConsoleReadKey();
}
}
運行結果
From:http://tw.wingwit.com/Article/program/net/201311/13306.html