重新溫習陣列(轉)
重新溫習陣列(轉)[@more@]在此之前已經在本書中介紹過陣列了。現在既然你已瞭解了類,可以介紹關於陣列的重要的一點:陣列是作為物件來實現的。因此,你可能想要利用陣列的一種特別的屬性,具體地說,就是一個陣列的大小——也就是,一個陣列能儲存的元素的數目——可以在它的length 例項變數中找到。所有的陣列都有這個變數,並且它總是儲存陣列的大小。下面的程式示例了這個性質:
// This program demonstrates the length array member.
class Length {
public static void main(String args[]) { int a1[] = new int[10];int a2[] = {3,5,7,1,8,99,44,-10};int a3[] = {4,3,2,1};
System.out.println("length of a1 is " + a1.length);
System.out.println("length of a2 is " + a2.length);
System.out.println("length of a3 is " + a3.length);
}
}
該程式顯示如下輸出:
length of a1 is 10
length of a2 is 8
length of a3 is 4
可以看出,每個陣列的大小都被顯示。要記住length 的值和陣列實際使用的元素的個數沒有關係。length 僅反映了陣列能夠包含的元素的數目。
在許多情況下,你可以好好利用length 。例如,下面的程式是Stack類的改進版本。你可能回憶起,該類的早期的版本總是要產生一個10個元素的堆疊。下面的版本可以讓你產生任意長度的堆疊。stck.length 的值用來防止堆疊溢位。
// Improved Stack class that uses the length array member.
class Stack { private int stck[]; private int tos;
// allocate and initialize stack
Stack(int size) {
stck = new int[size];
tos = -1;
}
// Push an item onto the stack void push(int item) {if(tos==stck.length-1) // use length member System.out.println("Stack is full.");
else
stck[++tos] = item;
}
// Pop an item from the stack int pop() {
if(tos < 0) { System.out.println("Stack underflow."); return 0;
}
else
return stck[tos--];
}
}
class TestStack2 {
public static void main(String args[]) {
Stack mystack1 = new Stack(5);
Stack mystack2 = new Stack(8);
// push some numbers onto the stack
for(int i=0; i<5; i++) mystack1.push(i);
for(int i=0; i<8; i++) mystack2.push(i);
// pop those numbers off the stack
System.out.println("Stack in mystack1:");
for(int i=0; i<5; i++)
System.out.println(mystack1.pop());
System.out.println("Stack in mystack2:");
for(int i=0; i<8; i++)
System.out.println(mystack2.pop());
}
}
注意,該程式建立了兩個堆疊:一個有5個元素,另一個有8個元素。可以看出,陣列保持它們自己長度資訊的事實使建立任何大小的堆疊很容易。
// This program demonstrates the length array member.
class Length {
public static void main(String args[]) { int a1[] = new int[10];int a2[] = {3,5,7,1,8,99,44,-10};int a3[] = {4,3,2,1};
System.out.println("length of a1 is " + a1.length);
System.out.println("length of a2 is " + a2.length);
System.out.println("length of a3 is " + a3.length);
}
}
該程式顯示如下輸出:
length of a1 is 10
length of a2 is 8
length of a3 is 4
可以看出,每個陣列的大小都被顯示。要記住length 的值和陣列實際使用的元素的個數沒有關係。length 僅反映了陣列能夠包含的元素的數目。
在許多情況下,你可以好好利用length 。例如,下面的程式是Stack類的改進版本。你可能回憶起,該類的早期的版本總是要產生一個10個元素的堆疊。下面的版本可以讓你產生任意長度的堆疊。stck.length 的值用來防止堆疊溢位。
// Improved Stack class that uses the length array member.
class Stack { private int stck[]; private int tos;
// allocate and initialize stack
Stack(int size) {
stck = new int[size];
tos = -1;
}
// Push an item onto the stack void push(int item) {if(tos==stck.length-1) // use length member System.out.println("Stack is full.");
else
stck[++tos] = item;
}
// Pop an item from the stack int pop() {
if(tos < 0) { System.out.println("Stack underflow."); return 0;
}
else
return stck[tos--];
}
}
class TestStack2 {
public static void main(String args[]) {
Stack mystack1 = new Stack(5);
Stack mystack2 = new Stack(8);
// push some numbers onto the stack
for(int i=0; i<5; i++) mystack1.push(i);
for(int i=0; i<8; i++) mystack2.push(i);
// pop those numbers off the stack
System.out.println("Stack in mystack1:");
for(int i=0; i<5; i++)
System.out.println(mystack1.pop());
System.out.println("Stack in mystack2:");
for(int i=0; i<8; i++)
System.out.println(mystack2.pop());
}
}
注意,該程式建立了兩個堆疊:一個有5個元素,另一個有8個元素。可以看出,陣列保持它們自己長度資訊的事實使建立任何大小的堆疊很容易。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-957972/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 重新學習一下陣列函式陣列函式
- 重新排列陣列陣列
- 【重溫基礎】10.陣列陣列
- js陣列API--溫故知新JS陣列API
- iOS 字典轉陣列,陣列轉字典iOS陣列
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- js將陣列轉字元,字元轉回陣列JS陣列字元
- PHP陣列轉換為js陣列PHP陣列JS
- 陣列學習陣列
- java 陣列(轉)Java陣列
- shell陣列(轉)陣列
- 輪轉陣列陣列
- VB.NET重新申明陣列簡介陣列
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 二維陣列和稀疏陣列互轉陣列
- PHP二維陣列轉一維陣列PHP陣列
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 陣列的學習陣列
- JAVA 陣列 練習Java陣列
- plsql陣列學習SQL陣列
- 陣列練習題陣列
- jQuery將類陣列物件轉換為陣列jQuery陣列物件
- 【Java】int[] 陣列 和 Integer陣列的轉換Java陣列
- js陣列反轉JS陣列
- 翻轉int陣列陣列
- 將字串陣列轉換為浮點數陣列字串陣列
- js將偽陣列或者集合轉換為陣列JS陣列
- JavaScript二維陣列轉換成一維陣列JavaScript陣列
- 多維陣列按鍵名進行重新排序陣列排序
- LeetCode 1470. 重新排列陣列LeetCode陣列
- 學習JSON陣列JSON陣列
- PHP學習3——陣列PHP陣列
- 字尾陣列複習陣列
- Java學習之陣列Java陣列
- c# 陣列學習C#陣列
- 二維陣列練習陣列
- Java學習之陣列練習Java陣列